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

Disassembly:
mov eax, 0x5180
call fcn.005a5410
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 0x55da60
test ecx, ecx
mov eax, 0x616fa0
cmovne eax, edx
mov edx, eax
mov dword [esp + 0x28], eax
test ebx, ebx
je 0x55ed78
test edx, edx
je 0x55ed78
test esi, esi
je 0x55ed78
lea eax, [edx - 2]
mov ebp, edx
mov dword [esp + 0x30], ebp
mov dword [esp + 0x6c], eax
cmp ecx, 0xffffffff
jne 0x55daa6
xor ecx, ecx
mov eax, edx
mov dword [esp + 0x44], ecx
cmp word [edx], cx
je 0x55daa6
lea eax, ds:[eax + 2]
inc ecx
cmp word [eax], 0
jne 0x55da97
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 0x55dac5
mov eax, 0xffffffe1
jmp 0x55ed7d
mov edi, dword [ebx + 0x48]
mov eax, edi
and al, 7
cmp al, 2
je 0x55dada
mov eax, 0xffffffe0
jmp 0x55ed7d
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 0x55db2e
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 0x55dcc8
mov edi, dword [esp + 0x28]
mov eax, ebx
xor edx, edx
and eax, 0x4000000
cmp edi, ecx
jae 0x55dba4
test eax, eax
je 0x55ddac
nop word [eax + eax]
mov ax, word [ebp]
and ax, word [esp + 0x54]
cmp ax, word [esp + 0x38]
jne 0x55dba4
add ebp, 2
mov edx, 1
mov dword [esp + 0x30], ebp
cmp ebp, ecx
jb 0x55db80
mov ecx, ebp
lfence
mov dword [esp + 0x130], ecx
test edx, edx
jne 0x55dc05
mov eax, dword ds:[esp + 0x24]
movzx edx, word [eax + 0x64]
test edx, edx
je 0x55dc05
cmp ecx, edi
jbe 0x55dc05
sub ecx, 2
mov dword [esp + 0x130], ecx
cmp ecx, edi
jbe 0x55dbfd
nop word [eax + eax]
mov ax, word [ecx]
and ax, word [esp + 0x54]
cmp ax, word [esp + 0x38]
jne 0x55dbfd
sub ecx, 2
mov dword [esp + 0x130], ecx
cmp ecx, edi
ja 0x55dbe0
nop dword [eax]
sub edx, 1
jne 0x55dbc4
mov edx, dword [esp + 0x44]
mov eax, ecx
sub eax, edi
sar eax, 1
push esi
sub edx, eax
call fcn.0057f2c0
mov edx, eax
mov eax, dword [esp + 0x20]
mov dword [eax + 0x28], edx
test edx, edx
je 0x55dcc8
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 0x55dde5
test edx, edx
jg 0x55dde5
lea ecx, [edi + eax*2]
mov dword [esp + 0x14], ecx
cmp ecx, ebp
jae 0x55ddd3
add ecx, 2
lfence
mov dword [esp + 0x130], ecx
cmp ecx, ebp
jae 0x55dc9b
mov edx, 0xfc00
mov ax, word [ecx]
and ax, dx
cmp ax, word [esp + 0x38]
jne 0x55dc9b
add ecx, 2
mov dword [esp + 0x130], ecx
cmp ecx, ebp
jb 0x55dc80
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.0057f2c0
mov edx, eax
mov eax, dword [esp + 0x20]
mov dword [eax + 0x28], edx
test edx, edx
jne 0x55dc30
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 0x55ddec
nop dword [eax]
test ecx, 0x2000
jne 0x55ddec
xor eax, eax
jmp 0x55ddf1
mov ax, word ds:[edi]
mov ecx, 0xfc00
and ax, cx
mov ecx, 0xdc00
cmp ax, cx
jne 0x55dba4
mov eax, 0xffffffe6
jmp 0x55ed7d
mov dword ds:[esp + 0x50], 2
jmp 0x55dcc8
mov eax, edx
jmp 0x55ed7d
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.0x55de80
nop dword [eax]
jmp dword [eax*4 + 0x55ed98]
mov eax, 0xd
mov dword [esp + 0x16c], 1
mov word [esp + 0x170], ax
jmp 0x55df03
mov eax, 0xa
mov dword [esp + 0x16c], 1
mov word [esp + 0x170], ax
jmp 0x55df03
xor eax, eax
mov dword [esp + 0x16c], 1
mov word [esp + 0x170], ax
jmp 0x55df03
mov dword [esp + 0x16c], 2
mov dword [esp + 0x170], 0xa000d
jmp 0x55df03
mov dword [esp + 0x168], 1
jmp 0x55df03
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 0x55df7f
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 0x55dfec
lea ecx, [edx + edx*4]
add ecx, ecx
mov eax, ecx
mov dword [esp + 0xdc], ecx
shr eax, 0xa
cmp eax, esi
jbe 0x55dfb8
mov ecx, esi
shl ecx, 0xa
cmp edx, ecx
jbe 0x55dfa7
mov eax, 0xffffffc1
jmp 0x55ed7d
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 0x55dfe5
lea eax, ds:[esi - 0x30]
jmp 0x55ed7d
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.005861b0
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 0x55e0e5
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 0x55e0fe
mov eax, 0xff
cmp di, ax
ja 0x55e089
movzx eax, di
movzx edi, byte [eax + edx]
mov eax, ecx
mov dword [esp + 0x34], edi
cmp esi, 0x7f
jbe 0x55e0fe
cmp dword [esp + 0x1c], 0
jne 0x55e09a
mov eax, ecx
test ebx, 0x20000
je 0x55e0fe
movzx ecx, si
mov eax, ecx
shr eax, 7
lfence
movzx eax, word [eax*2 + 0x5f3170]
shl eax, 7
and ecx, 0x8000007f
jns 0x55e0bd
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 0x55e0fe
cmp dword [esp + 0x64], 0
jne 0x55e0fa
test cl, 0x40
je 0x55e0fa
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 0x55e1ae
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 0x55e1b0
mov eax, 0xff
cmp cx, ax
ja 0x55e155
movzx eax, cx
movzx eax, byte [eax + edx]
mov dword [esp + 0x3c], eax
cmp edi, 0x7f
jbe 0x55e1b0
mov eax, dword [esp + 0x1c]
test eax, eax
jne 0x55e168
nop dword [eax]
test ebx, 0x20000
je 0x55e1b4
movzx ecx, di
mov eax, ecx
shr eax, 7
lfence
movzx eax, word [eax*2 + 0x5f3170]
shl eax, 7
and ecx, 0x8000007f
jns 0x55e18d
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 0x55e1b0
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 0x55e934
cmp dword ds:[esp + 0x74], 0
je 0x55e44b
mov ebx, dword [esp + 0x14]
mov edx, ebp
cmp ebp, ebx
jae 0x55e43e
mov esi, dword ds:[esp + 0x168]
test eax, eax
je 0x55e375
mov ebx, dword [esp + 0x134]
nop
test esi, esi
je 0x55e312
mov ebx, dword ds:[esp + 0x134]
cmp edx, ebx
jae case.default.0x55e2d1
movzx eax, word [edx]
mov ecx, eax
and ecx, 0xfc00
cmp ecx, 0xd800
jne 0x55e294
movzx ecx, word [edx + 2]
and eax, 0x3ff
and ecx, 0x3ff
shl eax, 0xa
or eax, ecx
add eax, 0x10000
cmp esi, 2
jne 0x55e2ba
cmp eax, 0xa
je case.0x55e2d1.10
nop
cmp eax, 0xd
jne case.default.0x55e2d1
lea eax, [ebx - 2]
cmp edx, eax
jae case.0x55e2d1.10
cmp word [edx + 2], 0xa
mov edi, 2
je 0x55e2ea
jmp case.0x55e2d1.10
nop word [eax + eax]
cmp eax, 0x85
ja 0x55e2d8
je case.0x55e2d1.10
add eax, 0xfffffff6
cmp eax, 3
ja case.default.0x55e2d1
jmp dword [eax*4 + 0x55edb0]
sub eax, 0x2028
je case.0x55e2d1.10
nop
sub eax, 1
jne case.default.0x55e2d1
mov edi, 1
mov dword [esp + 0x16c], edi
mov eax, 1
jmp 0x55e2fa
xor eax, eax
mov ebx, dword [esp + 0x134]
test eax, eax
je 0x55e33d
mov esi, dword [esp + 0x2c]
mov dword [esp + 0x14], edx
jmp 0x55e452
lea eax, [edi + edi]
mov ecx, ebx
sub ecx, eax
cmp edx, ecx
ja 0x55e33d
mov ax, word [edx]
cmp ax, word [esp + 0x170]
jne 0x55e33d
cmp edi, 1
je 0x55e305
mov ax, word [edx + 2]
cmp ax, word [esp + 0x172]
je 0x55e305
mov ecx, dword [esp + 0x14]
add edx, 2
cmp edx, ecx
jae 0x55e305
mov ax, word [edx]
and ax, word [esp + 0x54]
cmp ax, word [esp + 0x38]
jne 0x55e250
add edx, 2
cmp edx, ecx
jb 0x55e250
mov esi, dword [esp + 0x2c]
mov dword [esp + 0x14], edx
jmp 0x55e452
mov ebp, dword [esp + 0x134]
nop dword [eax]
test esi, esi
je 0x55e3f3
cmp edx, ebp
jae case.default.0x55e3c5
movzx eax, word [edx]
cmp esi, 2
jne 0x55e3b2
cmp eax, 0xa
je case.0x55e3c5.10
cmp eax, 0xd
jne case.default.0x55e3c5
lea eax, ss:[ebp - 2]
cmp edx, eax
jae case.0x55e3c5.10
cmp word [edx + 2], 0xa
mov edi, 2
je 0x55e3dd
jmp case.0x55e3c5.10
cmp eax, 0x85
ja 0x55e3cc
je case.0x55e3c5.10
add eax, 0xfffffff6
cmp eax, 3
ja case.default.0x55e3c5
jmp dword [eax*4 + 0x55edc0]
sub eax, 0x2028
je case.0x55e3c5.10
sub eax, 1
jne case.default.0x55e3c5
mov edi, 1
mov dword [esp + 0x16c], edi
mov eax, 1
jmp 0x55e3ed
xor eax, eax
test eax, eax
jne 0x55e429
jmp 0x55e41e
lea eax, [edi + edi]
mov ecx, ebp
sub ecx, eax
cmp edx, ecx
ja 0x55e41e
mov ax, word [edx]
cmp ax, word [esp + 0x170]
jne 0x55e41e
cmp edi, 1
je 0x55e429
mov ax, word [edx + 2]
cmp ax, word [esp + 0x172]
je 0x55e429
add edx, 2
cmp edx, ebx
jb 0x55e380
mov ebp, dword [esp + 0x30]
mov ebx, dword [esp + 0x134]
mov esi, dword [esp + 0x2c]
mov dword [esp + 0x14], edx
jmp 0x55e452
mov ebx, dword [esp + 0x134]
mov dword [esp + 0x14], edx
jmp 0x55e452
mov ebx, dword [esp + 0x134]
cmp dword [esp + 0x5c], 0
je 0x55e5a6
mov ecx, dword [esp + 0x4c]
mov edi, dword [esp + 0x48]
test ecx, ecx
jne 0x55e471
test edi, edi
je 0x55e848
cmp ebp, edx
sbb eax, eax
neg eax
cmp ebp, edx
jae 0x55e4c4
movzx eax, word ss:[ebp]
test ecx, ecx
je 0x55e498
cmp ax, si
je 0x55e848
cmp ax, word [esp + 0x34]
je 0x55e848
test edi, edi
je case.0x55ea09.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 0x55e848
mov ecx, dword [esp + 0x18]
xor ebx, ebx
cmp dword [esp + 0x1c], 0
je 0x55e536
mov edx, dword ds:[esp + 0x14]
cmp edx, ecx
je 0x55e536
test ebx, ebx
je 0x55e4ed
cmp ebx, 0xfffffffe
jne 0x55e536
mov ebx, dword [esp + 0x8c]
mov esi, 0xdc00
nop dword [eax]
lea ebp, [edx + 2]
mov dword [esp + 0x30], ebp
cmp ebp, ecx
jae 0x55e534
mov edx, 0xfc00
mov ax, word ss:[ebp]
and ax, dx
cmp ax, si
jne 0x55ec36
add ebp, 2
mov dword [esp + 0x30], ebp
cmp ebp, ecx
jb 0x55e510
xor ebx, ebx
mov eax, dword ds:[esp + 0xe0]
cmp eax, dword [esp + 0xe8]
je 0x55e568
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 0x55ed14
movzx eax, word [edx + 0x26]
mov ecx, dword [esp + 0x118]
add eax, eax
cmp ecx, eax
jl 0x55ecbf
xor esi, esi
jmp 0x55eccd
cmp dword [esp + 0x4c], 0
je 0x55e60b
cmp ebp, edx
jae 0x55e82d
mov eax, dword ds:[esp + 0x7c]
cmp ax, word [esp + 0x80]
je 0x55e5f5
mov ecx, dword [esp + 0x34]
nop
movzx eax, word [ebp]
cmp ax, si
je 0x55e82d
nop dword [eax]
cmp ax, cx
je 0x55e82d
add ebp, 2
cmp ebp, edx
jb 0x55e5d0
jmp 0x55e82d
cmp word [ebp], si
je 0x55e82d
add ebp, 2
cmp ebp, edx
jb 0x55e5f5
jmp 0x55e82d
cmp dword [esp + 0x64], 0
je 0x55e7ed
mov esi, dword ds:[esp + 0x12c]
cmp ebp, esi
jbe 0x55e848
cmp ebp, edx
jae 0x55e694
mov ecx, dword [esp + 0x1c]
test ecx, ecx
je 0x55e740
mov ebx, 0xfc00
nop dword [eax]
mov eax, dword [esp + 0x168]
test eax, eax
je 0x55e6cf
cmp ebp, esi
jbe 0x55e67f
push ecx
lea ecx, [esp + 0x170]
mov edx, eax
push ecx
push esi
mov ecx, ebp
call fcn.0057f180
mov edi, dword [esp + 0x16c]
mov esi, dword [esp + 0x12c]
test eax, eax
je 0x55e67f
mov eax, 1
jmp 0x55e681
xor eax, eax
test eax, eax
je 0x55e6fd
mov edx, dword [esp + 0x14]
mov ebx, dword [esp + 0x134]
cmp word [ebp - 2], 0xd
jne 0x55e848
mov eax, dword [esp + 0x168]
cmp eax, 1
je 0x55e6b4
cmp eax, 2
jne 0x55e848
cmp ebp, edx
jae 0x55e848
cmp word [ebp], 0xa
jne 0x55e848
add ebp, 2
jmp 0x55e848
lea edx, [edi + edi]
lea eax, [esi + edx]
cmp ebp, eax
jb 0x55e701
mov ecx, ebp
sub ecx, edx
mov ax, word [ecx]
cmp ax, word [esp + 0x170]
jne 0x55e6fd
cmp edi, 1
je 0x55e689
mov ax, word [ecx + 2]
cmp ax, word [esp + 0x172]
je 0x55e689
mov ecx, dword [esp + 0x1c]
mov edx, dword [esp + 0x14]
add ebp, 2
cmp ebp, edx
jae 0x55e68d
mov ax, word ss:[ebp]
and ax, bx
cmp ax, word [esp + 0x38]
jne 0x55e640
add ebp, 2
cmp ebp, edx
jb 0x55e640
jmp 0x55e68d
mov eax, dword [esp + 0x168]
test eax, eax
je 0x55e78a
cmp ebp, esi
jbe 0x55e77e
push ecx
lea ecx, [esp + 0x170]
mov edx, eax
push ecx
push esi
mov ecx, ebp
call fcn.0057f180
mov edi, dword [esp + 0x16c]
mov esi, dword [esp + 0x12c]
test eax, eax
je 0x55e77e
mov eax, 1
jmp 0x55e780
xor eax, eax
test eax, eax
jne 0x55e689
jmp 0x55e7ce
lea edx, [edi + edi]
lea eax, [esi + edx]
cmp ebp, eax
jb 0x55e7d2
mov ecx, ebp
sub ecx, edx
mov ax, word [ecx]
cmp ax, word [esp + 0x170]
jne 0x55e7ce
cmp edi, 1
je 0x55e689
mov ax, word ds:[ecx + 2]
cmp ax, word [esp + 0x172]
je 0x55e689
mov ecx, dword [esp + 0x1c]
mov edx, dword ds:[esp + 0x14]
add ebp, 2
cmp ebp, edx
jb 0x55e740
jmp 0x55e68d
mov edi, dword [esp + 0x48]
test edi, edi
je 0x55e848
cmp ebp, edx
jae 0x55e82d
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 0x55e826
add ebp, 2
cmp ebp, esi
jb 0x55e802
mov ebx, dword [esp + 0x134]
cmp word [esp + 0x11c], 0
jne 0x55e848
nop dword [eax + eax]
cmp ebp, ebx
jae case.0x55ea09.997
cmp word ds:[esp + 0x11c], 0
mov edx, ebx
mov esi, dword [esp + 0x24]
mov dword [esp + 0x14], edx
jne 0x55ea32
movzx eax, word [esi + 0x66]
sub edx, ebp
sar edx, 1
cmp edx, eax
jl case.0x55ea09.997
mov eax, dword [esp + 0x4c]
lea ecx, [eax*2]
add ecx, ebp
cmp dword [esp + 0x68], 0
je 0x55ea32
cmp ecx, dword [esp + 0x6c]
jbe 0x55ea32
nop dword [eax + eax]
cmp edx, 0x7d0
jb 0x55e8bf
cmp dword [esp + 0x5c], 0
jne 0x55ea32
cmp edx, 0x1e8480
jae 0x55ea32
mov edx, dword [esp + 0x134]
cmp ecx, edx
jae case.0x55ea09.997
mov eax, dword ds:[esp + 0x84]
mov ebx, dword [esp + 0x58]
cmp ax, word [esp + 0x88]
je 0x55ea10
nop
movzx eax, word [ecx]
mov esi, ecx
add ecx, 2
mov edx, eax
cmp ax, bx
je 0x55e915
nop
cmp dx, word [esp + 0x3c]
je 0x55e915
cmp ecx, dword [esp + 0x134]
jb 0x55e8f0
jmp case.0x55ea09.997
mov edx, dword [esp + 0x134]
nop dword [eax]
cmp esi, edx
jae case.0x55ea09.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 0x55e4d0
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.00550da0
cmp dword [esp + 0xfc], 0
mov ebx, eax
je 0x55e9ea
cmp dword [esp + 0x60], 0
jne 0x55e9ea
mov eax, dword [esp + 0x13c]
mov dword [esp + 0x60], eax
mov dword [esp + 0x78], ebp
test ebx, ebx
jg case.default.0x55ea09
je case.0x55ea09.996
lea eax, ds:[ebx + 0x3e5]
cmp eax, 4
ja case.default.0x55ea09
jmp dword [eax*4 + 0x55edd0]
mov ax, word ds:[ecx]
mov esi, ecx
add ecx, 2
cmp ax, bx
je 0x55e91c
cmp ecx, edx
jb 0x55ea10
jmp case.0x55ea09.997
mov ecx, dword [esp + 0x18]
mov ebx, dword [esp + 0x20]
jmp 0x55e938
mov eax, dword [esp + 0x160]
mov edx, ebp
mov edi, dword [esp + 0x1c]
mov dword [esp + 0x164], eax
jmp 0x55eaa2
mov edx, dword ds:[esp + 0x150]
cmp edx, ebp
jbe case.0x55ea09.996
mov edi, dword [esp + 0x1c]
jmp 0x55eaa2
mov edi, dword ds:[esp + 0x1c]
lea edx, [ebp + 2]
mov dword [esp + 0x164], 0
test edi, edi
je 0x55eaa2
cmp edx, dword [esp + 0x14]
jae 0x55eaa2
mov ax, word [edx]
mov ecx, 0xfc00
and ax, cx
mov ecx, 0xdc00
cmp ax, cx
jne 0x55eaa2
add edx, 2
mov esi, dword [esp + 0x168]
xor ebx, ebx
cmp dword [esp + 0x74], ebx
je 0x55ebbf
test esi, esi
je 0x55eb7d
mov eax, dword [esp + 0x134]
cmp ebp, eax
jae case.default.0x55eb40
movzx ecx, word [ebp]
test edi, edi
je 0x55eb08
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x55eb01
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 0x55eb2c
cmp ecx, 0xa
je case.0x55eb40.10
cmp ecx, 0xd
jne case.default.0x55eb40
add eax, 0xfffffffe
cmp ebp, eax
jae case.0x55eb40.10
cmp word [ebp + 2], 0xa
mov edi, 2
je 0x55eb59
jmp case.0x55eb40.10
cmp ecx, 0x85
ja 0x55eb47
je case.0x55eb40.10
add ecx, 0xfffffff6
cmp ecx, 3
ja case.default.0x55eb40
nop
jmp dword [ecx*4 + 0x55ede4]
sub ecx, 0x2028
je case.0x55eb40.10
sub ecx, 1
jne case.default.0x55eb40
mov edi, 1
mov dword [esp + 0x16c], edi
mov eax, 1
jmp 0x55eb70
mov edi, dword [esp + 0x16c]
xor eax, eax
test eax, eax
je 0x55ebc6
mov ecx, dword [esp + 0x18]
jmp 0x55e4d2
mov edi, dword [esp + 0x16c]
mov ecx, dword [esp + 0x134]
lea eax, [edi + edi]
sub ecx, eax
cmp ebp, ecx
ja 0x55ebc6
mov ax, word ss:[ebp]
cmp ax, word [esp + 0x170]
jne 0x55ebc6
cmp edi, 1
je case.default.0x55ea09
mov ax, word [ebp + 2]
cmp ax, word [esp + 0x172]
je case.default.0x55ea09
jmp 0x55ebc6
mov edi, dword [esp + 0x16c]
mov ebp, edx
mov dword [esp + 0x30], ebp
cmp dword [esp + 0x5c], ebx
jne case.default.0x55ea09
mov eax, dword [esp + 0x14]
cmp edx, eax
ja case.default.0x55ea09
nop word [eax + eax]
cmp edx, dword [esp + 0x28]
jbe 0x55ec1a
cmp word [edx - 2], 0xd
jne 0x55ec1a
cmp edx, eax
jae 0x55ec1a
cmp word [edx], 0xa
jne 0x55ec1a
mov eax, dword [esp + 0x24]
test dword [eax + 0x48], 0x800
jne 0x55ec1a
cmp esi, 1
je 0x55ec13
cmp esi, 2
je 0x55ec13
cmp edi, 2
jne 0x55ec1a
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 0x55e200
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.0057f2c0
mov ecx, dword [esp + 0x18]
test eax, eax
je 0x55ec9d
mov edx, dword [esp + 0x14]
jns 0x55e500
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 0x55e500
mov eax, dword [esp + 0x1c]
mov ebx, dword [esp + 0x20]
mov dword [esp + 0x50], 3
jmp 0x55e1de
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 0x55e1e2
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 0x55ed7d
mov eax, dword ds:[esp + 0x148]
mov dword [edx + 0x14], eax
test ebx, ebx
je 0x55ed29
cmp ebx, 0xfffffffe
jne 0x55ed6a
mov esi, dword [esp + 0x78]
test esi, esi
je 0x55ed67
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 0x55ed7d
or ebx, 0xffffffff
mov dword [edx + 0x28], ebx
mov eax, ebx
jmp 0x55ed7d
mov eax, 0xffffffd4
jmp 0x55ed7d
mov eax, 0xffffffcd
mov ecx, dword [esp + 0x518c]
pop edi
pop esi
pop ebp
pop ebx
xor ecx, esp
call fcn.00583f7f
add esp, 0x5180
ret 0x14