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

Disassembly:
push ebp
push edi
push esi
push ebx
sub esp, 0x5c
mov eax, dword [0x5ec348]
mov dword [esp + 0x4c], eax
xor eax, eax
mov esi, dword [esp + 0x70]
mov ebp, dword [esp + 0x74]
mov edi, dword [esp + 0x78]
test esi, esi
je 0x5502e6
mov edx, dword [esi]
mov eax, dword [edx - 8]
mov ecx, dword [edx - 4]
mov dword [esp + 0x38], 0
mov dword [esp + 0x3c], 0
lea ebx, [esi + eax]
mov dword [esp + 0x40], 0
mov edx, dword [ebx]
mov dword [esp + 0x44], 0
mov dword [esp + 0x48], 0x10
cmp dword [edx - 4], ecx
jne 0x5502e6
mov edx, dword [esp + 0x7c]
test edx, edx
js 0x550282
add eax, dword [esp + 0x7c]
je 0x550330
mov eax, dword [ecx]
mov dword [esp + 0xc], ebx
lea edx, [esp + 0x38]
mov ebx, dword [esp + 0x7c]
mov dword [esp + 0x18], edx
mov dword [esp + 0x14], esi
mov dword [esp], ebx
mov dword [esp + 0x10], ebp
mov dword [esp + 8], edi
mov dword [esp + 4], 6
call dword [eax + 0x1c]
sub esp, 0x1c
mov ebx, dword [esp + 0x38]
mov dword [esp + 0x2c], ebx
test ebx, ebx
je 0x5502e6
mov ecx, dword [esp + 0x44]
mov eax, ecx
not eax
test al, 6
je 0x5502e8
mov eax, dword [esp + 0x40]
mov edx, dword [esp + 0x3c]
and edx, eax
not edx
and edx, 6
je 0x5502e8
and eax, 5
cmp eax, 4
je 0x5502e6
test ecx, ecx
je 0x550308
xor ebx, ebx
mov eax, dword [esp + 0x4c]
sub eax, dword [0x5ec348]
jne 0x55038c
add esp, 0x5c
mov eax, ebx
pop ebx
pop esi
pop edi
pop ebp
ret
mov eax, dword [esp + 0x7c]
test eax, eax
js 0x550350
add ebx, dword [esp + 0x7c]
cmp esi, ebx
jne 0x5502e6
lea esi, cs:[esi]
mov ebx, dword [esp + 0x2c]
jmp 0x5502e8
mov dword [esp], edi
mov dword [esp + 0x2c], ecx
call fcn.004f6540
sub esp, 4
test al, al
mov ecx, dword [esp + 0x2c]
je 0x550282
jmp 0x5502e8
cmp dword [esp + 0x7c], 0xfffffffe
je 0x5502e6
mov eax, dword [edi]
mov dword [esp + 0xc], esi
mov ecx, edi
mov esi, dword [esp + 0x2c]
mov dword [esp + 8], ebp
mov dword [esp + 4], esi
mov esi, dword [esp + 0x7c]
mov dword [esp], esi
call dword [eax + 0x20]
not eax
sub esp, 0x10
test al, 6
jne 0x5502e6
mov eax, dword [esp + 0x38]
mov dword [esp + 0x2c], eax
jmp 0x550320
call fcn.00497000
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
push ebp
push edi
push esi
push ebx
sub esp, 0x8c
mov esi, dword [esp + 0xb0]
mov edi, dword [esp + 0xb4]
mov dword [esp + 0x50], 0
mov ecx, dword [esp + 0xa0]
mov dword [esp + 0x54], 0
mov ebx, dword [0x5ec348]
mov dword [esp + 0x7c], ebx
xor ebx, ebx
mov dword [esp + 0x24], esi
mov eax, dword [esp + 0xa8]
mov dword [esp + 0x20], edi
mov edx, dword [esp + 0xac]
cmp ecx, 1
jne 0x5504a8
add eax, 0xbcd4d500
adc edx, 0xb8b1aabc
mov dword [esp + 0x28], eax
cmp ecx, eax
mov eax, 0
sbb eax, edx
mov dword [esp + 0x2c], edx
setae byte [esp + 0x35]
cmp dword [esp + 0xa4], 6
movzx ecx, byte [esp + 0x35]
sete al
and al, cl
mov byte [esp + 0x36], al
je 0x5504d0
mov eax, dword [esi - 0x18]
mov ebx, dword [esi - 0xc]
mov dword [esp + 0x1c], eax
mov eax, dword [esi - 0x10]
mov dword [esp + 0x30], eax
test ebx, ebx
je 0x550600
mov ebp, dword [esp + 0x1c]
mov ecx, dword [esp + 0x1c]
test ecx, ecx
js 0x550786
mov eax, dword [esp + 0x24]
mov edi, dword [esp + 0x20]
mov dword [esp + 4], 0
mov dword [esp + 8], eax
mov dword [esp], edi
call fcn.00494370
mov dword [esp + 8], ebp
mov dword [esp + 4], 2
mov dword [esp], edi
call fcn.00494370
mov dword [esp + 4], ebx
mov dword [esp], edi
call fcn.004943f0
mov eax, 7
jmp 0x5504ad
mov eax, 3
mov edx, dword [esp + 0x7c]
sub edx, dword [0x5ec348]
jne 0x5509e4
add esp, 0x8c
pop ebx
pop esi
pop edi
pop ebp
ret
mov edi, dword [esp + 0x20]
mov dword [esp], edi
call fcn.00494400
mov dword [esp + 0x30], eax
mov edx, eax
test eax, eax
je 0x55077c
lea ecx, [esp + 0x64]
mov eax, edi
call fcn.004a7b50
mov edx, edi
mov ebx, eax
movzx eax, byte [esp + 0x78]
mov byte [esp + 0x37], al
mov dword [esp + 0x38], eax
call fcn.004a7d10
mov dword [esp], edi
mov dword [esp + 0x3c], eax
mov dword [esp + 0x6c], eax
lea eax, [esp + 0x54]
mov dword [esp + 4], eax
call fcn.004943d0
cmp dword [esp + 0x54], 1
sbb eax, 0
mov ecx, eax
mov eax, dword [esp + 0x74]
mov dword [esp + 0x1c], eax
cmp ebx, eax
jae 0x5505d2
mov edi, dword [esp + 0x64]
movzx esi, byte [esp + 0x79]
mov dword [esp + 0x18], edi
mov edi, ecx
lea esi, [esi]
xor edx, edx
mov eax, esi
xor ebp, ebp
call fcn.004a7d10
mov ecx, ebx
mov edx, eax
lea eax, [esp + 0x58]
mov dword [esp], eax
mov eax, esi
call fcn.004a7dd0
xor edx, edx
mov ebx, eax
mov eax, esi
call fcn.004a7d10
mov ecx, ebx
mov edx, eax
lea eax, [esp + 0x5c]
mov dword [esp], eax
mov eax, esi
call fcn.004a7dd0
xor edx, edx
mov ebx, eax
mov eax, esi
call fcn.004a7d10
mov ecx, ebx
mov edx, eax
lea eax, [esp + 0x60]
mov dword [esp], eax
mov eax, esi
call fcn.004a7dd0
xor ecx, ecx
mov ebx, eax
lea esi, cs:[esi]
movzx edx, byte [ebx]
add ebx, 1
mov eax, edx
and eax, 0x7f
shl eax, cl
add ecx, 7
or ebp, eax
test dl, dl
js 0x5505b0
mov eax, dword [esp + 0x18]
add eax, dword [esp + 0x58]
cmp edi, eax
jae 0x550610
mov eax, dword [esp + 0xa4]
and eax, 1
jne 0x550630
test byte [esp + 0xa4], 8
je 0x5505ed
call fcn.0054bb00
mov edi, dword [esp + 0x28]
mov ebp, dword [esp + 0x2c]
mov edx, 1
cmp edx, edi
sbb eax, ebp
jb 0x5505e8
mov eax, dword [esp + 0x24]
mov dword [esp], eax
call fcn.0054fd10
lea esi, [esi]
add eax, dword [esp + 0x5c]
cmp edi, eax
jb 0x550668
mov eax, dword [esp + 0x1c]
cmp ebx, eax
jb 0x550550
jmp 0x5505d2
mov dword [esp + 0x1c], 0
xor ebx, ebx
mov dword [esp + 0x18], 0
mov edi, dword [esp + 0x28]
mov eax, 1
mov ebp, dword [esp + 0x2c]
cmp eax, edi
mov eax, 0
sbb eax, ebp
jae 0x5507bc
mov eax, 6
jmp 0x5504ad
mov eax, dword [esp + 0x60]
test eax, eax
je 0x55077c
add eax, dword [esp + 0x68]
mov ebx, eax
test ebp, ebp
je 0x55095f
mov eax, dword [esp + 0x1c]
lea eax, [eax + ebp - 1]
mov dword [esp + 0x18], eax
test ebx, ebx
je 0x55077c
mov esi, dword [esp + 0xa4]
mov dword [esp + 0x48], 0x5983bc
and esi, 8
mov dword [esp + 0x44], esi
jne 0x5506cd
mov edi, dword [esp + 0x28]
mov ebp, dword [esp + 0x2c]
mov eax, 1
mov dword [esp + 0x48], 0x5983d0
cmp eax, edi
sbb esi, ebp
jae 0x5509c0
mov dword [esp + 0x4c], ebx
lea esi, [esi]
mov ebx, dword [esp + 0x18]
xor ebp, ebp
xor ecx, ecx
movzx edx, byte [ebx]
add ebx, 1
mov eax, edx
and eax, 0x7f
shl eax, cl
add ecx, 7
or ebp, eax
test dl, dl
js 0x5506e0
cmp ecx, 0x1f
ja 0x55070b
and edx, 0x40
je 0x55070b
mov eax, 1
shl eax, cl
neg eax
or ebp, eax
mov dword [esp + 0x1c], ebp
mov edx, ebx
xor esi, esi
xor ecx, ecx
mov edi, ebx
lea esi, cs:[esi]
nop
movzx ebx, byte [edx]
add edx, 1
mov eax, ebx
and eax, 0x7f
shl eax, cl
add ecx, 7
or esi, eax
test bl, bl
js 0x550720
mov eax, edi
mov edi, ebx
mov ebx, eax
cmp ecx, 0x1f
ja 0x5507e8
and edi, 0x40
je 0x5507e8
mov eax, 1
shl eax, cl
neg eax
or esi, eax
test ebp, ebp
jne 0x550820
mov byte [esp + 0x36], 1
lea esi, cs:[esi]
nop
lea eax, [ebx + esi]
mov dword [esp + 0x18], eax
jmp 0x5506d8
mov eax, 8
jmp 0x5504ad
mov edi, dword [esp + 0x20]
mov edx, dword [esp + 0x30]
lea ecx, [esp + 0x64]
mov eax, edi
call fcn.004a7b50
movzx esi, byte [esp + 0x78]
mov edx, edi
mov eax, esi
call fcn.004a7d10
mov edx, edi
mov eax, esi
call fcn.004a7d10
mov edi, dword [esp + 0x24]
mov dword [edi - 0xc], eax
jmp 0x550460
mov edi, dword [esp + 0x24]
mov eax, dword [esp + 0x1c]
mov dword [edi - 0x18], eax
mov eax, dword [esp + 0x18]
mov dword [edi - 0xc], ebx
mov dword [edi - 0x14], eax
mov eax, dword [esp + 0x30]
mov dword [edi - 0x10], eax
mov eax, dword [esp + 0x50]
mov dword [edi - 8], eax
jmp 0x55065e
test ebp, ebp
jne 0x550820
mov byte [esp + 0x36], 1
test esi, esi
jne 0x550770
cmp byte [esp + 0x36], 0
mov ebx, dword [esp + 0x4c]
je 0x55077c
test byte [esp + 0xa4], 1
jne 0x55077c
xor ebp, ebp
jmp 0x550460
test ebp, ebp
jg 0x5508d0
mov eax, dword [esp + 0x44]
test eax, eax
sete al
test byte [esp + 0x35], al
je 0x550843
mov edi, dword [esp + 0x48]
test edi, edi
jne 0x550998
mov edx, ebp
mov dword [esp + 0x40], esi
xor edi, edi
xor ecx, ecx
not edx
mov esi, ebx
add edx, dword [esp + 0x70]
lea esi, [esi]
movzx ebx, byte [edx]
add edx, 1
mov eax, ebx
and eax, 0x7f
shl eax, cl
add ecx, 7
or edi, eax
test bl, bl
js 0x550858
mov ebx, esi
mov esi, dword [esp + 0x40]
test edi, edi
jne 0x5507f1
mov eax, dword [esp + 0xa4]
mov ebx, dword [esp + 0x4c]
and eax, 1
jne 0x550642
mov esi, dword [esp + 0x28]
mov edi, dword [esp + 0x2c]
mov edx, 1
cmp edx, esi
sbb eax, edi
jb 0x5508af
mov eax, dword [esp + 0x44]
test eax, eax
je 0x550454
test ebp, ebp
jns 0x550460
mov eax, dword [esp + 0x7c]
sub eax, dword [0x5ec348]
jne 0x5509e9
call fcn.00548540
lea esi, [esi]
movzx eax, byte [esp + 0x37]
cmp al, 0xff
je 0x55095b
and eax, 7
cmp al, 2
je 0x550948
jbe 0x550988
cmp al, 3
je 0x550950
cmp al, 4
jne 0x5509df
lea ecx, [ebp*8]
neg ecx
lea eax, [esp + 0x60]
mov edx, dword [esp + 0x3c]
add ecx, dword [esp + 0x70]
mov dword [esp], eax
mov eax, dword [esp + 0x38]
call fcn.004a7dd0
mov eax, dword [esp + 0x60]
test eax, eax
je 0x55087c
mov edx, dword [esp + 0x48]
test edx, edx
je 0x5507f1
lea ecx, [esp + 0x50]
call fcn.004a7ae0
test al, al
je 0x5507f1
jmp 0x55087c
lea ecx, [ebp + ebp]
neg ecx
jmp 0x5508ff
lea ecx, [ebp*4]
neg ecx
jmp 0x5508ff
xor ecx, ecx
jmp 0x5508ff
test eax, eax
je 0x55077c
test byte [esp + 0xa4], 1
jne 0x55077c
mov eax, dword [esp + 0xa4]
and eax, 8
mov dword [esp + 0x44], eax
jmp 0x550816
test al, al
je 0x550950
jmp 0x554f28
mov ecx, dword [esp + 0x50]
mov edx, dword [esp + 0x48]
mov dword [esp], ebp
lea eax, [esp + 0x64]
call fcn.004a7c20
test al, al
jne 0x5507f1
jmp 0x55087c
mov edi, dword [esp + 0x24]
lea eax, [edi + 0x20]
test byte [edi], 1
je 0x5509cf
mov eax, dword [edi - 0x30]
mov dword [esp + 0x50], eax
mov eax, dword [eax - 0x50]
mov dword [esp + 0x48], eax
jmp 0x5506cd
jmp 0x554f28
call fcn.00497000
call fcn.00497000
jmp 0x554f3e