Function at 0x55da00
Capabilities:
Resolve function by parsing pe exports

Disassembly:
mov eax, 0x5180
call fcn.005a5430
mov eax, dword [0x62d040]
xor eax, esp
mov dword [esp + 0x517c], eax
xor eax, eax
mov dword [esp + 0x18], edx
mov dword [esp + 0x38], eax
mov dword [esp + 0x3c], eax
mov dword [esp + 0x58], eax
mov dword [esp + 0x1c], eax
mov dword [esp + 0x24], eax
mov dword [esp + 0x48], eax
mov dword [esp + 0x2c], eax
mov dword [esp + 0x40], eax
lea eax, [esp + 0x178]
mov dword [esp + 0xd8], eax
push ebx
mov ebx, ecx
mov ecx, dword [esp + 0x5188]
mov dword [esp + 0x18], ebx
mov dword [esp + 0x38], ecx
push ebp
push esi
mov esi, dword [esp + 0x519c]
mov dword [esp + 0x1c], esi
push edi
test edx, edx
jne 0x55da80
test ecx, ecx
mov eax, 0x616fb0
cmovne eax, edx
mov edx, eax
mov dword [esp + 0x28], eax
test ebx, ebx
je 0x55ed98
test edx, edx
je 0x55ed98
test esi, esi
je 0x55ed98
lea eax, [edx - 2]
mov ebp, edx
mov dword [esp + 0x30], ebp
mov dword [esp + 0x6c], eax
cmp ecx, 0xffffffff
jne 0x55dac6
xor ecx, ecx
mov eax, edx
mov dword [esp + 0x44], ecx
cmp word [edx], cx
je 0x55dac6
lea eax, ds:[eax + 2]
inc ecx
cmp word [eax], 0
jne 0x55dab7
mov dword [esp + 0x44], ecx
cmp dword [ebx + 0x38], 0x50435245
lea ecx, [edx + ecx*2]
mov dword [esp + 0x14], ecx
mov dword [esp + 0x18], ecx
je 0x55dae5
mov eax, 0xffffffe1
jmp 0x55ed9d
mov edi, dword [ebx + 0x48]
mov eax, edi
and al, 7
cmp al, 2
je 0x55dafa
mov eax, 0xffffffe0
jmp 0x55ed9d
mov ebx, dword [ebx + 0x40]
shr edi, 0xe
and edi, 0xc
mov dword [esp + 0x70], edi
mov edi, ebx
mov eax, dword [esp + 0x70]
shr edi, 0x13
shr eax, 4
and edi, 1
test byte [esi + 0x25], 1
movzx eax, ax
mov dword [esp + 0x1c], edi
mov word [esp + 0x11c], ax
je 0x55db4e
push dword [esi + 8]
push dword [esi + 0x10]
mov esi, dword [esi + 4]
mov ecx, esi
call dword [0x5a9914]
call esi
mov esi, dword [esp + 0x20]
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x28]
and byte [esi + 0x25], 0xfe
mov dword [esi + 0x10], 0
add esi, 0x20
mov dword [esp + 0x130], edx
mov dword [esp + 0x54], 0xfc00
mov dword [esp + 0x38], 0xdc00
mov dword [esi], 0
test edi, edi
je 0x55dce8
mov edi, dword [esp + 0x28]
mov eax, ebx
ret
xor edx, edx
and eax, 0x4000000
cmp edi, ecx
jae 0x55dbc4
test eax, eax
je 0x55ddcc
nop word [eax + eax]
mov ax, word [ebp]
and ax, word [esp + 0x54]
cmp ax, word [esp + 0x38]
jne 0x55dbc4
add ebp, 2
mov edx, 1
mov dword [esp + 0x30], ebp
cmp ebp, ecx
jb 0x55dba0
mov ecx, ebp
lfence
mov dword [esp + 0x130], ecx
test edx, edx
jne 0x55dc25
mov eax, dword ds:[esp + 0x24]
movzx edx, word [eax + 0x64]
test edx, edx
je 0x55dc25
cmp ecx, edi
jbe 0x55dc25
sub ecx, 2
mov dword [esp + 0x130], ecx
cmp ecx, edi
jbe 0x55dc1d
nop word [eax + eax]
mov ax, word [ecx]
and ax, word [esp + 0x54]
cmp ax, word [esp + 0x38]
jne 0x55dc1d
sub ecx, 2
mov dword [esp + 0x130], ecx
cmp ecx, edi
ja 0x55dc00
nop dword [eax]
sub edx, 1
jne 0x55dbe4
mov edx, dword [esp + 0x44]
mov eax, ecx
sub eax, edi
sar eax, 1
push esi
sub edx, eax
call fcn.0057f2e0
mov edx, eax
mov eax, dword [esp + 0x20]
mov dword [eax + 0x28], edx
test edx, edx
je 0x55dce8
nop dword [eax + eax]
mov ecx, dword [esp + 0x130]
mov eax, dword [eax + 0x20]
sub ecx, edi
sar ecx, 1
add eax, ecx
mov ecx, dword [esp + 0x20]
mov dword [ecx + 0x20], eax
test ebx, 0x4000000
je 0x55de05
test edx, edx
jg 0x55de05
lea ecx, [edi + eax*2]
mov dword [esp + 0x14], ecx
cmp ecx, ebp
jae 0x55ddf3
add ecx, 2
lfence
mov dword [esp + 0x130], ecx
cmp ecx, ebp
jae 0x55dcbb
mov edx, 0xfc00
mov ax, word [ecx]
and ax, dx
cmp ax, word [esp + 0x38]
jne 0x55dcbb
add ecx, 2
mov dword [esp + 0x130], ecx
cmp ecx, ebp
jb 0x55dca0
mov eax, dword [esp + 0x18]
mov edx, dword [esp + 0x44]
mov dword [esp + 0x14], eax
mov eax, ecx
sub eax, edi
sar eax, 1
push esi
sub edx, eax
call fcn.0057f2e0
mov edx, eax
mov eax, dword [esp + 0x20]
mov dword [eax + 0x28], edx
test edx, edx
jne 0x55dc50
mov eax, dword [esp + 0x24]
mov esi, dword [esp + 0x14]
mov dword [esp + 0x90], 2
mov dword [esp + 0xcc], 0
mov edx, dword [eax + 0x40]
mov ecx, edx
movq xmm0, qword [eax]
mov edi, dword [eax + 8]
shr ecx, 0x1f
mov dword [esp + 0x5c], ecx
mov ecx, edx
shr ecx, 8
and ecx, 1
movq qword [esp + 0xd0], xmm0
mov dword [esp + 0x74], ecx
mov ecx, dword [eax + 0x48]
mov eax, ecx
shr eax, 9
and eax, 1
mov dword [esp + 0xd8], edi
mov dword [esp + 0x64], eax
lea eax, [esp + 0x90]
mov dword [esp + 0x178], eax
mov eax, dword [esp + 0x28]
mov dword [esp + 0xa8], eax
mov eax, esi
sub eax, dword [esp + 0x28]
sar eax, 1
mov dword [esp + 0xac], eax
mov eax, dword [esp + 0x28]
mov dword [esp + 0x12c], eax
mov eax, ecx
shr eax, 0xc
and eax, 1
mov dword [esp + 0x180], 0
mov dword [esp + 0x100], eax
mov eax, dword [esp + 0x24]
mov dword [esp + 0x17c], 0
mov dword [esp + 0x114], 0
mov dword [esp + 0x134], esi
cmp word [eax + 0x64], 0
ja 0x55de0c
nop dword [eax]
test ecx, 0x2000
jne 0x55de0c
xor eax, eax
jmp 0x55de11
mov ax, word ds:[edi]
mov ecx, 0xfc00
and ax, cx
mov ecx, 0xdc00
cmp ax, cx
jne 0x55dbc4
mov eax, 0xffffffe6
jmp 0x55ed9d
mov dword ds:[esp + 0x50], 2
jmp 0x55dce8
mov eax, edx
jmp 0x55ed9d
mov eax, 1
mov ecx, dword [esp + 0x24]
mov dword [esp + 0x104], eax
mov eax, dword [esp + 0x24]
mov dword [esp + 0x15c], edx
mov dword [esp + 0x164], 0
mov dword [esp + 0x148], 0
movzx edx, word [eax + 0x6e]
lea esi, [eax + 0x70]
movzx eax, word [eax + 0x6c]
mov word [esp + 0x122], ax
imul eax, edx
mov dword [esp + 0x144], 0
mov dword [esp + 0x124], esi
mov word [esp + 0x120], dx
mov dword [esp + 0x168], 0
lea eax, [esi + eax*2]
mov dword [esp + 0x128], eax
mov ax, word [ecx + 0x60]
mov word [esp + 0x11e], ax
movzx eax, word [ecx + 0x62]
dec eax
cmp eax, 5
ja case.default.0x55dea0
nop dword [eax]
jmp dword [eax*4 + 0x55edb8]
mov eax, 0xd
mov dword [esp + 0x16c], 1
mov word [esp + 0x170], ax
jmp 0x55df23
mov eax, 0xa
mov dword [esp + 0x16c], 1
mov word [esp + 0x170], ax
jmp 0x55df23
xor eax, eax
mov dword [esp + 0x16c], 1
mov word [esp + 0x170], ax
jmp 0x55df23
mov dword [esp + 0x16c], 2
mov dword [esp + 0x170], 0xa000d
jmp 0x55df23
mov dword [esp + 0x168], 1
jmp 0x55df23
mov dword [esp + 0x168], 2
movzx eax, word [ecx + 0x68]
mov esi, 0x1312d00
mov edx, 0x989680
lea eax, [eax*8 + 0x57]
and eax, 0xfffffffc
cmp dword [ecx + 0x4c], esi
mov dword [esp + 0x40], eax
mov eax, edx
cmovbe esi, dword [ecx + 0x4c]
cmp dword [ecx + 0x50], eax
mov dword [esp + 0xec], esi
cmovbe eax, dword [ecx + 0x50]
mov dword [esp + 0xf0], eax
mov eax, ecx
cmp dword [eax + 0x54], edx
cmovbe edx, dword [eax + 0x54]
mov dword [esp + 0xf4], edx
mov edx, dword [esp + 0x40]
cmp edx, 0x800
ja 0x55df9f
mov ecx, 0x5000
mov esi, dword [esp + 0xe8]
mov eax, ecx
mov dword [esp + 0xe0], esi
xor edx, edx
div dword [esp + 0x40]
sub ecx, edx
mov dword [esp + 0xdc], ecx
jmp 0x55e00c
lea ecx, [edx + edx*4]
add ecx, ecx
mov eax, ecx
mov dword [esp + 0xdc], ecx
shr eax, 0xa
cmp eax, esi
jbe 0x55dfd8
mov ecx, esi
shl ecx, 0xa
cmp edx, ecx
jbe 0x55dfc7
mov eax, 0xffffffc1
jmp 0x55ed9d
mov eax, ecx
xor edx, edx
div dword [esp + 0x40]
sub ecx, edx
mov dword [esp + 0xdc], ecx
mov esi, dword [esp + 0xd0]
push edi
push ecx
mov ecx, esi
call dword [0x5a9914]
call esi
mov esi, eax
mov dword [esp + 0xe0], esi
test esi, esi
jne 0x55e005
lea eax, ds:[esi - 0x30]
jmp 0x55ed9d
mov ecx, dword [esp + 0xdc]
lea eax, [esi + ecx]
mov dword [esp + 0xe4], eax
mov eax, dword [esp + 0x40]
add eax, 0xffffffac
push eax
lea eax, [esi + 0x54]
push 0xff
push eax
call fcn.005861d0
mov esi, dword ds:[esp + 0x30]
add esp, 0xc
mov eax, dword [esi + 0xc]
mov ecx, dword [esi + 0x48]
mov dword [esp + 0x108], eax
lea edx, [eax + 0x100]
add eax, 0x340
mov dword [esp + 0x110], eax
mov eax, ecx
mov dword [esp + 0x10c], edx
test cl, 0x10
je 0x55e105
movzx edi, word [esi + 0x58]
movzx esi, di
mov dword [esp + 0x4c], 1
mov dword [esp + 0x34], edi
mov dword [esp + 0x2c], esi
test cl, 0x20
je 0x55e11e
mov eax, 0xff
cmp di, ax
ja 0x55e0a9
movzx eax, di
movzx edi, byte [eax + edx]
mov eax, ecx
mov dword [esp + 0x34], edi
cmp esi, 0x7f
jbe 0x55e11e
cmp dword [esp + 0x1c], 0
jne 0x55e0ba
mov eax, ecx
test ebx, 0x20000
je 0x55e11e
movzx ecx, si
mov eax, ecx
shr eax, 7
lfence
movzx eax, word [eax*2 + 0x5f3170]
shl eax, 7
and ecx, 0x8000007f
jns 0x55e0dd
dec ecx
or ecx, 0xffffff80
inc ecx
add eax, ecx
movzx eax, word [eax*2 + 0x5e0570]
lea eax, [eax + eax*2]
mov ax, word [eax*4 + 0x5dc364]
add ax, si
movzx edi, ax
mov eax, dword [esp + 0x24]
mov dword [esp + 0x34], edi
mov eax, dword [eax + 0x48]
jmp 0x55e11e
cmp dword [esp + 0x64], 0
jne 0x55e11a
test cl, 0x40
je 0x55e11a
lea eax, [esi + 0x14]
mov dword [esp + 0x48], eax
mov eax, ecx
xor esi, esi
xor edi, edi
movzx ecx, di
mov dword [esp + 0x80], ecx
movzx ecx, si
mov dword [esp + 0x7c], ecx
test al, al
jns 0x55e1ce
mov ecx, dword [esp + 0x24]
mov dword [esp + 0x68], 1
movzx ecx, word [ecx + 0x5c]
movzx edi, cx
mov dword [esp + 0x3c], ecx
mov dword [esp + 0x58], edi
test eax, 0x100
je 0x55e1d0
mov eax, 0xff
cmp cx, ax
ja 0x55e175
movzx eax, cx
movzx eax, byte [eax + edx]
mov dword [esp + 0x3c], eax
cmp edi, 0x7f
jbe 0x55e1d0
mov eax, dword [esp + 0x1c]
test eax, eax
jne 0x55e188
nop dword [eax]
test ebx, 0x20000
je 0x55e1d4
movzx ecx, di
mov eax, ecx
shr eax, 7
lfence
movzx eax, word [eax*2 + 0x5f3170]
shl eax, 7
and ecx, 0x8000007f
jns 0x55e1ad
dec ecx
or ecx, 0xffffff80
inc ecx
add eax, ecx
movzx eax, word [eax*2 + 0x5e0570]
lea eax, [eax + eax*2]
mov ax, word [eax*4 + 0x5dc364]
add ax, di
movzx eax, ax
mov dword [esp + 0x3c], eax
jmp 0x55e1d0
xor edi, edi
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x3c]
mov ebx, dword [esp + 0x20]
mov edx, dword [esp + 0x14]
movzx ecx, cx
mov dword [esp + 0x88], ecx
movzx ecx, di
mov dword [esp + 0x84], ecx
lea ecx, [ebx + 0x20]
mov dword [esp + 0x8c], ecx
mov ecx, dword [esp + 0x18]
xor esi, esi
xor edi, edi
mov dword [esp + 0x60], edi
mov edi, dword [esp + 0x16c]
mov dword [esp + 0x78], esi
mov dword [esp + 0xfc], esi
nop dword [eax]
mov esi, dword [esp + 0x24]
test dword [esi + 0x40], 0x10000
mov esi, dword [esp + 0x2c]
jne 0x55e954
cmp dword ds:[esp + 0x74], 0
je 0x55e46b
mov ebx, dword [esp + 0x14]
mov edx, ebp
cmp ebp, ebx
jae 0x55e45e
mov esi, dword ds:[esp + 0x168]
test eax, eax
je 0x55e395
mov ebx, dword [esp + 0x134]
nop
test esi, esi
je 0x55e332
mov ebx, dword ds:[esp + 0x134]
cmp edx, ebx
jae case.default.0x55e2f1
movzx eax, word [edx]
mov ecx, eax
and ecx, 0xfc00
cmp ecx, 0xd800
jne 0x55e2b4
movzx ecx, word [edx + 2]
and eax, 0x3ff
and ecx, 0x3ff
shl eax, 0xa
or eax, ecx
add eax, 0x10000
cmp esi, 2
jne 0x55e2da
cmp eax, 0xa
je case.0x55e2f1.10
nop
cmp eax, 0xd
jne case.default.0x55e2f1
lea eax, [ebx - 2]
cmp edx, eax
jae case.0x55e2f1.10
cmp word [edx + 2], 0xa
mov edi, 2
je 0x55e30a
jmp case.0x55e2f1.10
nop word [eax + eax]
cmp eax, 0x85
ja 0x55e2f8
je case.0x55e2f1.10
add eax, 0xfffffff6
cmp eax, 3
ja case.default.0x55e2f1
jmp dword [eax*4 + 0x55edd0]
sub eax, 0x2028
je case.0x55e2f1.10
nop
sub eax, 1
jne case.default.0x55e2f1
mov edi, 1
mov dword [esp + 0x16c], edi
mov eax, 1
jmp 0x55e31a
xor eax, eax
mov ebx, dword [esp + 0x134]
test eax, eax
je 0x55e35d
mov esi, dword [esp + 0x2c]
mov dword [esp + 0x14], edx
jmp 0x55e472
lea eax, [edi + edi]
mov ecx, ebx
sub ecx, eax
cmp edx, ecx
ja 0x55e35d
mov ax, word [edx]
cmp ax, word [esp + 0x170]
jne 0x55e35d
cmp edi, 1
je 0x55e325
mov ax, word [edx + 2]
cmp ax, word [esp + 0x172]
je 0x55e325
mov ecx, dword [esp + 0x14]
add edx, 2
cmp edx, ecx
jae 0x55e325
mov ax, word [edx]
and ax, word [esp + 0x54]
cmp ax, word [esp + 0x38]
jne 0x55e270
add edx, 2
cmp edx, ecx
jb 0x55e270
mov esi, dword [esp + 0x2c]
mov dword [esp + 0x14], edx
jmp 0x55e472
mov ebp, dword [esp + 0x134]
nop dword [eax]
test esi, esi
je 0x55e413
cmp edx, ebp
jae case.default.0x55e3e5
movzx eax, word [edx]
cmp esi, 2
jne 0x55e3d2
cmp eax, 0xa
je case.0x55e3e5.10
cmp eax, 0xd
jne case.default.0x55e3e5
lea eax, ss:[ebp - 2]
cmp edx, eax
jae case.0x55e3e5.10
cmp word [edx + 2], 0xa
mov edi, 2
je 0x55e3fd
jmp case.0x55e3e5.10
cmp eax, 0x85
ja 0x55e3ec
je case.0x55e3e5.10
add eax, 0xfffffff6
cmp eax, 3
ja case.default.0x55e3e5
jmp dword [eax*4 + 0x55ede0]
sub eax, 0x2028
je case.0x55e3e5.10
sub eax, 1
jne case.default.0x55e3e5
mov edi, 1
mov dword [esp + 0x16c], edi
mov eax, 1
jmp 0x55e40d
xor eax, eax
test eax, eax
jne 0x55e449
jmp 0x55e43e
lea eax, [edi + edi]
mov ecx, ebp
sub ecx, eax
cmp edx, ecx
ja 0x55e43e
mov ax, word [edx]
cmp ax, word [esp + 0x170]
jne 0x55e43e
cmp edi, 1
je 0x55e449
mov ax, word [edx + 2]
cmp ax, word [esp + 0x172]
je 0x55e449
add edx, 2
cmp edx, ebx
jb 0x55e3a0
mov ebp, dword [esp + 0x30]
mov ebx, dword [esp + 0x134]
mov esi, dword [esp + 0x2c]
mov dword [esp + 0x14], edx
jmp 0x55e472
mov ebx, dword [esp + 0x134]
mov dword [esp + 0x14], edx
jmp 0x55e472
mov ebx, dword [esp + 0x134]
cmp dword [esp + 0x5c], 0
je 0x55e5c6
mov ecx, dword [esp + 0x4c]
mov edi, dword [esp + 0x48]
test ecx, ecx
jne 0x55e491
test edi, edi
je 0x55e868
cmp ebp, edx
sbb eax, eax
neg eax
cmp ebp, edx
jae 0x55e4e4
movzx eax, word ss:[ebp]
test ecx, ecx
je 0x55e4b8
cmp ax, si
je 0x55e868
cmp ax, word [esp + 0x34]
je 0x55e868
test edi, edi
je case.0x55ea29.997
mov ecx, 0xff
cmp ax, cx
cmova eax, ecx
movzx edx, ax
mov eax, 1
mov ecx, edx
shr edx, 3
and ecx, 7
shl eax, cl
test byte [edx + edi], al
mov eax, 0
setne al
test eax, eax
jne 0x55e868
mov ecx, dword [esp + 0x18]
xor ebx, ebx
cmp dword [esp + 0x1c], 0
je 0x55e556
mov edx, dword ds:[esp + 0x14]
cmp edx, ecx
je 0x55e556
test ebx, ebx
je 0x55e50d
cmp ebx, 0xfffffffe
jne 0x55e556
mov ebx, dword [esp + 0x8c]
mov esi, 0xdc00
nop dword [eax]
lea ebp, [edx + 2]
mov dword [esp + 0x30], ebp
cmp ebp, ecx
jae 0x55e554
mov edx, 0xfc00
mov ax, word ss:[ebp]
and ax, dx
cmp ax, si
jne 0x55ec56
add ebp, 2
mov dword [esp + 0x30], ebp
cmp ebp, ecx
jb 0x55e530
xor ebx, ebx
mov eax, dword ds:[esp + 0xe0]
cmp eax, dword [esp + 0xe8]
je 0x55e588
push dword ds:[esp + 0xd8]
mov esi, dword [esp + 0xd8]
mov ecx, esi
push eax
call dword [0x5a9914]
call esi
mov edx, dword [esp + 0x20]
mov eax, dword [esp + 0x24]
mov dword [edx + 0xc], eax
mov eax, dword [esp + 0x144]
mov dword [edx + 0x14], eax
mov byte [edx + 0x24], 0
cmp ebx, 1
jne 0x55ed34
movzx eax, word [edx + 0x26]
mov ecx, dword [esp + 0x118]
add eax, eax
cmp ecx, eax
jl 0x55ecdf
xor esi, esi
jmp 0x55eced
cmp dword [esp + 0x4c], 0
je 0x55e62b
cmp ebp, edx
jae 0x55e84d
mov eax, dword ds:[esp + 0x7c]
cmp ax, word [esp + 0x80]
je 0x55e615
mov ecx, dword [esp + 0x34]
nop
movzx eax, word [ebp]
cmp ax, si
je 0x55e84d
nop dword [eax]
cmp ax, cx
je 0x55e84d
add ebp, 2
cmp ebp, edx
jb 0x55e5f0
jmp 0x55e84d
cmp word [ebp], si
je 0x55e84d
add ebp, 2
cmp ebp, edx
jb 0x55e615
jmp 0x55e84d
cmp dword [esp + 0x64], 0
je 0x55e80d
mov esi, dword ds:[esp + 0x12c]
cmp ebp, esi
jbe 0x55e868
cmp ebp, edx
jae 0x55e6b4
mov ecx, dword [esp + 0x1c]
test ecx, ecx
je 0x55e760
mov ebx, 0xfc00
nop dword [eax]
mov eax, dword [esp + 0x168]
test eax, eax
je 0x55e6ef
cmp ebp, esi
jbe 0x55e69f
push ecx
lea ecx, [esp + 0x170]
mov edx, eax
push ecx
push esi
mov ecx, ebp
call fcn.0057f1a0
mov edi, dword [esp + 0x16c]
mov esi, dword [esp + 0x12c]
test eax, eax
je 0x55e69f
mov eax, 1
jmp 0x55e6a1
xor eax, eax
test eax, eax
je 0x55e71d
mov edx, dword [esp + 0x14]
mov ebx, dword [esp + 0x134]
cmp word [ebp - 2], 0xd
jne 0x55e868
mov eax, dword [esp + 0x168]
cmp eax, 1
je 0x55e6d4
cmp eax, 2
jne 0x55e868
cmp ebp, edx
jae 0x55e868
cmp word [ebp], 0xa
jne 0x55e868
add ebp, 2
jmp 0x55e868
lea edx, [edi + edi]
lea eax, [esi + edx]
cmp ebp, eax
jb 0x55e721
mov ecx, ebp
sub ecx, edx
mov ax, word [ecx]
cmp ax, word [esp + 0x170]
jne 0x55e71d
cmp edi, 1
je 0x55e6a9
mov ax, word [ecx + 2]
cmp ax, word [esp + 0x172]
je 0x55e6a9
mov ecx, dword [esp + 0x1c]
mov edx, dword [esp + 0x14]
add ebp, 2
cmp ebp, edx
jae 0x55e6ad
mov ax, word ss:[ebp]
and ax, bx
cmp ax, word [esp + 0x38]
jne 0x55e660
add ebp, 2
cmp ebp, edx
jb 0x55e660
jmp 0x55e6ad
mov eax, dword [esp + 0x168]
test eax, eax
je 0x55e7aa
cmp ebp, esi
jbe 0x55e79e
push ecx
lea ecx, [esp + 0x170]
mov edx, eax
push ecx
push esi
mov ecx, ebp
call fcn.0057f1a0
mov edi, dword [esp + 0x16c]
mov esi, dword [esp + 0x12c]
test eax, eax
je 0x55e79e
mov eax, 1
jmp 0x55e7a0
xor eax, eax
test eax, eax
jne 0x55e6a9
jmp 0x55e7ee
lea edx, [edi + edi]
lea eax, [esi + edx]
cmp ebp, eax
jb 0x55e7f2
mov ecx, ebp
sub ecx, edx
mov ax, word [ecx]
cmp ax, word [esp + 0x170]
jne 0x55e7ee
cmp edi, 1
je 0x55e6a9
mov ax, word ds:[ecx + 2]
cmp ax, word [esp + 0x172]
je 0x55e6a9
mov ecx, dword [esp + 0x1c]
mov edx, dword ds:[esp + 0x14]
add ebp, 2
cmp ebp, edx
jb 0x55e760
jmp 0x55e6ad
mov edi, dword [esp + 0x48]
test edi, edi
je 0x55e868
cmp ebp, edx
jae 0x55e84d
mov esi, dword [esp + 0x14]
mov ebx, 0xff
movzx edx, word [ebp]
mov eax, 1
cmp edx, ebx
cmova edx, ebx
mov ecx, edx
shr edx, 3
and ecx, 7
shl eax, cl
test byte [edx + edi], al
jne 0x55e846
add ebp, 2
cmp ebp, esi
jb 0x55e822
mov ebx, dword [esp + 0x134]
cmp word [esp + 0x11c], 0
jne 0x55e868
nop dword [eax + eax]
cmp ebp, ebx
jae case.0x55ea29.997
cmp word ds:[esp + 0x11c], 0
mov edx, ebx
mov esi, dword [esp + 0x24]
mov dword [esp + 0x14], edx
jne 0x55ea52
movzx eax, word [esi + 0x66]
sub edx, ebp
sar edx, 1
cmp edx, eax
jl case.0x55ea29.997
mov eax, dword [esp + 0x4c]
lea ecx, [eax*2]
add ecx, ebp
cmp dword [esp + 0x68], 0
je 0x55ea52
cmp ecx, dword [esp + 0x6c]
jbe 0x55ea52
nop dword [eax + eax]
cmp edx, 0x7d0
jb 0x55e8df
cmp dword [esp + 0x5c], 0
jne 0x55ea52
cmp edx, 0x1e8480
jae 0x55ea52
mov edx, dword [esp + 0x134]
cmp ecx, edx
jae case.0x55ea29.997
mov eax, dword ds:[esp + 0x84]
mov ebx, dword [esp + 0x58]
cmp ax, word [esp + 0x88]
je 0x55ea30
nop
movzx eax, word [ecx]
mov esi, ecx
add ecx, 2
mov edx, eax
cmp ax, bx
je 0x55e935
nop
cmp dx, word [esp + 0x3c]
je 0x55e935
cmp ecx, dword [esp + 0x134]
jb 0x55e910
jmp case.0x55ea29.997
mov edx, dword [esp + 0x134]
nop dword [eax]
cmp esi, edx
jae case.0x55ea29.997
mov ecx, dword [esp + 0x18]
mov ebx, dword [esp + 0x20]
mov dword [esp + 0x6c], esi
mov esi, dword [esp + 0x24]
nop dword [eax + eax]
cmp ebp, ecx
ja 0x55e4f0
lfence
mov edx, dword [esp + 0x128]
mov eax, ebp
sub eax, dword [esp + 0x28]
mov ecx, ebp
or dword [esp + 0xcc], 1
sar eax, 1
mov dword [esp + 0xb0], eax
mov eax, dword [esp + 0x50]
or eax, dword [esp + 0x70]
mov dword [esp + 0x158], eax
lea eax, [esp + 0xd0]
push eax
push dword [esp + 0x44]
movzx eax, word [esi + 0x68]
push eax
movzx eax, word [ebx + 0x26]
push eax
lea eax, [ebx + 0x2c]
mov dword [esp + 0x14c], ebp
push eax
mov dword [esp + 0x154], ebp
mov dword [esp + 0x10c], 0
mov dword [esp + 0x12c], 0
mov dword [esp + 0x174], 0
call fcn.00550dc0
cmp dword [esp + 0xfc], 0
mov ebx, eax
je 0x55ea0a
cmp dword [esp + 0x60], 0
jne 0x55ea0a
mov eax, dword [esp + 0x13c]
mov dword [esp + 0x60], eax
mov dword [esp + 0x78], ebp
test ebx, ebx
jg case.default.0x55ea29
je case.0x55ea29.996
lea eax, ds:[ebx + 0x3e5]
cmp eax, 4
ja case.default.0x55ea29
jmp dword [eax*4 + 0x55edf0]
mov ax, word ds:[ecx]
mov esi, ecx
add ecx, 2
cmp ax, bx
je 0x55e93c
cmp ecx, edx
jb 0x55ea30
jmp case.0x55ea29.997
mov ecx, dword [esp + 0x18]
mov ebx, dword [esp + 0x20]
jmp 0x55e958
mov eax, dword [esp + 0x160]
mov edx, ebp
mov edi, dword [esp + 0x1c]
mov dword [esp + 0x164], eax
jmp 0x55eac2
mov edx, dword ds:[esp + 0x150]
cmp edx, ebp
jbe case.0x55ea29.996
mov edi, dword [esp + 0x1c]
jmp 0x55eac2
mov edi, dword ds:[esp + 0x1c]
lea edx, [ebp + 2]
mov dword [esp + 0x164], 0
test edi, edi
je 0x55eac2
cmp edx, dword [esp + 0x14]
jae 0x55eac2
mov ax, word [edx]
mov ecx, 0xfc00
and ax, cx
mov ecx, 0xdc00
cmp ax, cx
jne 0x55eac2
add edx, 2
mov esi, dword [esp + 0x168]
xor ebx, ebx
cmp dword [esp + 0x74], ebx
je 0x55ebdf
test esi, esi
je 0x55eb9d
mov eax, dword [esp + 0x134]
cmp ebp, eax
jae case.default.0x55eb60
movzx ecx, word [ebp]
test edi, edi
je 0x55eb28
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x55eb21
movzx eax, word [ebp + 2]
and ecx, 0x3ff
and eax, 0x3ff
shl ecx, 0xa
or ecx, eax
add ecx, 0x10000
mov eax, dword [esp + 0x134]
cmp esi, 2
jne 0x55eb4c
cmp ecx, 0xa
je case.0x55eb60.10
cmp ecx, 0xd
jne case.default.0x55eb60
add eax, 0xfffffffe
cmp ebp, eax
jae case.0x55eb60.10
cmp word [ebp + 2], 0xa
mov edi, 2
je 0x55eb79
jmp case.0x55eb60.10
cmp ecx, 0x85
ja 0x55eb67
je case.0x55eb60.10
add ecx, 0xfffffff6
cmp ecx, 3
ja case.default.0x55eb60
nop
jmp dword [ecx*4 + 0x55ee04]
sub ecx, 0x2028
je case.0x55eb60.10
sub ecx, 1
jne case.default.0x55eb60
mov edi, 1
mov dword [esp + 0x16c], edi
mov eax, 1
jmp 0x55eb90
mov edi, dword [esp + 0x16c]
xor eax, eax
test eax, eax
je 0x55ebe6
mov ecx, dword [esp + 0x18]
jmp 0x55e4f2
mov edi, dword [esp + 0x16c]
mov ecx, dword [esp + 0x134]
lea eax, [edi + edi]
sub ecx, eax
cmp ebp, ecx
ja 0x55ebe6
mov ax, word ss:[ebp]
cmp ax, word [esp + 0x170]
jne 0x55ebe6
cmp edi, 1
je case.default.0x55ea29
mov ax, word [ebp + 2]
cmp ax, word [esp + 0x172]
je case.default.0x55ea29
jmp 0x55ebe6
mov edi, dword [esp + 0x16c]
mov ebp, edx
mov dword [esp + 0x30], ebp
cmp dword [esp + 0x5c], ebx
jne case.default.0x55ea29
mov eax, dword [esp + 0x14]
cmp edx, eax
ja case.default.0x55ea29
nop word [eax + eax]
cmp edx, dword [esp + 0x28]
jbe 0x55ec3a
cmp word [edx - 2], 0xd
jne 0x55ec3a
cmp edx, eax
jae 0x55ec3a
cmp word [edx], 0xa
jne 0x55ec3a
mov eax, dword [esp + 0x24]
test dword [eax + 0x48], 0x800
jne 0x55ec3a
cmp esi, 1
je 0x55ec33
cmp esi, 2
je 0x55ec33
cmp edi, 2
jne 0x55ec3a
lea ebp, [edx + 2]
mov dword [esp + 0x30], ebp
mov edx, dword [esp + 0x14]
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x18]
mov dword [esp + 0x144], ebx
mov ebx, dword [esp + 0x20]
jmp 0x55e220
mov edx, dword [esp + 0x44]
mov eax, ebp
sub eax, dword [esp + 0x28]
mov ecx, ebp
sar eax, 1
lfence
push ebx
sub edx, eax
mov dword [esp + 0x134], ebp
call fcn.0057f2e0
mov ecx, dword [esp + 0x18]
test eax, eax
je 0x55ecbd
mov edx, dword [esp + 0x14]
jns 0x55e520
mov eax, dword ds:[ebx]
lea edx, [eax*2]
add edx, ebp
mov dword [esp + 0x14], edx
mov dword [esp + 0x134], edx
cmp edx, ebp
jbe 0x55e520
mov eax, dword [esp + 0x1c]
mov ebx, dword [esp + 0x20]
mov dword [esp + 0x50], 3
jmp 0x55e1fe
mov eax, dword [esp + 0x1c]
mov edx, ecx
mov ebx, dword [esp + 0x20]
mov dword [esp + 0x14], edx
mov dword [esp + 0x134], ecx
mov dword [esp + 0x50], 1
jmp 0x55e202
mov eax, ecx
cdq
sub eax, edx
mov edx, dword [esp + 0x20]
mov esi, eax
sar esi, 1
inc esi
mov ebx, dword [esp + 0x28]
sub ebp, ebx
mov eax, dword [esp + 0x13c]
mov ecx, dword [esp + 0x20]
sub eax, ebx
sar eax, 1
sar ebp, 1
mov dword [edx + 0x18], eax
mov eax, esi
mov dword [edx + 0x28], esi
mov dword [edx + 0x20], ebp
mov edx, dword [esp + 0x138]
cmp dword [esp + 0x140], edx
mov dword [ecx + 0x10], ebx
cmova edx, dword [esp + 0x140]
sub edx, ebx
sar edx, 1
mov dword [ecx + 0x1c], edx
jmp 0x55ed9d
mov eax, dword ds:[esp + 0x148]
mov dword [edx + 0x14], eax
test ebx, ebx
je 0x55ed49
cmp ebx, 0xfffffffe
jne 0x55ed8a
mov esi, dword [esp + 0x78]
test esi, esi
je 0x55ed87
mov ecx, dword [esp + 0x28]
mov ebx, 0xfffffffe
mov eax, dword [esp + 0x14]
sub esi, ecx
mov edi, dword [esp + 0x60]
sub eax, ecx
sar eax, 1
sub edi, ecx
sar esi, 1
sar edi, 1
mov dword [edx + 0x30], eax
mov dword [edx + 0x1c], eax
mov eax, ebx
mov dword [edx + 0x10], ecx
mov dword [edx + 0x2c], esi
mov dword [edx + 0x20], esi
mov dword [edx + 0x18], edi
mov dword [edx + 0x28], ebx
jmp 0x55ed9d
or ebx, 0xffffffff
mov dword [edx + 0x28], ebx
mov eax, ebx
jmp 0x55ed9d
mov eax, 0xffffffd4
jmp 0x55ed9d
mov eax, 0xffffffcd
mov ecx, dword [esp + 0x518c]
pop edi
pop esi
pop ebp
pop ebx
xor ecx, esp
call fcn.00583f9f
add esp, 0x5180
ret 0x14