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

Disassembly:
push edi
push esi
push ebp
push ebx
push ecx
mov eax, 0x3c
call fcn.006021b0
mov ecx, dword [esp + 0x3c]
mov ebx, ecx
mov esi, dword [esp + 0x54]
xor ebp, ebp
mov eax, dword [ebx + 0x35]
test eax, eax
je 0x578387
mov eax, dword [esi + 6]
mov ecx, dword [esi]
call dword [eax*4 + 0x64e908]
test eax, eax
je 0x577ddf
xor eax, eax
mov al, byte [ebx + 9]
and eax, 8
test eax, 0xfffffff8
je 0x577ddf
mov ecx, dword [ebx + 0x35]
call fcn.00503818
test eax, eax
jne 0x577dd2
mov ebp, 5
mov ecx, dword [ebx + 0x35]
call fcn.00503674
jmp 0x577edd
push esi
mov ecx, dword [ebx + 0x35]
call fcn.00503954
test eax, eax
je 0x577e12
mov ebp, 1
mov ecx, dword [ebx + 0x35]
call fcn.00503818
test eax, eax
jne 0x577e0d
mov eax, dword [esi + 6]
mov ecx, dword [esi]
call dword [eax*4 + 0x64e908]
test eax, eax
je 0x577e12
mov ebp, 5
test ebp, ebp
je 0x577edd
mov eax, dword [ebx + 0x79]
cmp eax, 6
je 0x577f56
mov edx, dword [esi + 6]
mov ecx, dword [ebx + 0x35]
movzx eax, word [ecx + 0xa]
shl eax, 0x15
sar eax, 0x1b
cmp edx, eax
jne 0x577e45
push esi
call fcn.00503764
jmp 0x577edd
lea ecx, [esp + 0x18]
push 1
call fcn.004ff268
lea ecx, [esp + 0x24]
push dword [ebx + 0x79]
call fcn.004ff268
xor eax, eax
mov dword [esp + 0x30], eax
lea ecx, [esp + 0x18]
push ebx
push eax
push dword [esi]
push dword [esi + 6]
call fcn.0055b4d8
mov eax, dword [ebx + 0x35]
movzx edx, word [eax + 0xa]
shl edx, 0x15
sar edx, 0x1b
cmp edx, 0xa
jne 0x577e89
add eax, 0x17
jmp 0x577e99
cmp edx, 1
jne 0x577e96
mov eax, dword [eax + 0x17]
add eax, 4
jmp 0x577e99
mov eax, dword [eax + 0x17]
lea ecx, [esp + 0x24]
push eax
push edx
call fcn.004ffc7c
lea edx, [esp + 0x24]
lea eax, [esp + 0x30]
push eax
push dword [esp + 0x1c]
push edx
mov ecx, ebx
call fcn.005784ac
cmp eax, 1
je 0x577f38
lea eax, [esp + 0x24]
push eax
mov ecx, dword [ebx + 0x35]
call fcn.00503764
lea ecx, [esp + 0x24]
call fcn.005003d8
lea ecx, [esp + 0x18]
call fcn.005003d8
xor eax, eax
mov al, byte [ebx + 9]
and eax, 8
test eax, 0xfffffff8
jne 0x577ef1
mov ecx, dword [ebx + 0x35]
jmp 0x577f0f
mov ecx, dword [ebx + 0x35]
cmp ebx, dword [ecx + 0xf]
je 0x577f0f
mov edx, dword [ebx + 0x79]
cmp edx, 4
je 0x57808a
cmp edx, 4
je 0x577f7b
cmp edx, 5
je 0x577f7b
mov al, byte [ebx + 8]
or al, 4
mov byte [ebx + 8], al
push ebp
call fcn.00503254
mov al, byte [ebx + 8]
and al, 0xfb
mov byte [ebx + 8], al
mov ecx, ebx
call fcn.005789e4
mov eax, ebp
add esp, 0x40
pop ebx
pop ebp
pop esi
pop edi
ret 4
lea ecx, [esp + 0x24]
call fcn.005003d8
lea ecx, [esp + 0x18]
call fcn.005003d8
xor eax, eax
add esp, 0x40
pop ebx
pop ebp
pop esi
pop edi
ret 4
mov edx, dword [esi + 6]
cmp edx, 6
jne 0x577e29
mov edi, dword [ebx + 0x35]
mov edx, dword [esi]
lea esi, [edx + 0x49]
push 0
push esi
push edx
mov ecx, dword [edi + 0x17]
call fcn.00539210
jmp 0x577edd
test dword [ecx + 0x1b], 0x100
jne 0x577f0f
push 0x814
mov ecx, dword [ebx + 0x25]
call fcn.004ef848
mov esi, eax
test esi, esi
je 0x577fb7
mov edx, dword [esi + 0xf]
test edx, edx
je 0x577fb7
movzx edx, byte [edx + 0xa]
shl edx, 0x1a
and edx, 0xfc000000
cmp edx, 0x2c000000
je 0x5782c1
mov edx, dword [ebx + 0x79]
cmp edx, 4
je 0x57802b
cmp edx, 5
je 0x577fcc
mov ecx, dword [ebx + 0x35]
jmp 0x577f0f
mov ecx, dword [ebx + 0x35]
mov esi, dword [ecx + 0x17]
mov edx, dword [esi + 8]
mov eax, dword [esi + 0xc]
mov edi, eax
sub edi, 0
jge 0x577f0f
mov edi, dword [esi + 0x10]
test edi, edi
jne 0x577ff1
mov ecx, 1
jmp 0x577ff3
xor ecx, ecx
cmp edi, ecx
je 0x578008
xor edi, edi
sub edi, edx
mov edx, 0
sbb edx, eax
mov dword [esi + 8], edi
mov dword [esi + 0xc], edx
mov dword [esi + 0x10], ecx
cmp ecx, dword [esi + 0x20]
je 0x578020
xor edx, edx
xor edi, edi
sub edx, dword [esi + 0x18]
sbb edi, dword [esi + 0x1c]
mov dword [esi + 0x18], edx
mov dword [esi + 0x1c], edi
mov dword [esi + 0x20], ecx
mov ecx, dword [ebx + 0x35]
jmp 0x577f0f
mov ecx, dword [ebx + 0x35]
mov esi, dword [ecx + 0x17]
mov edx, dword [esi + 4]
mov eax, dword [esi + 8]
mov edi, eax
sub edi, 0
jge 0x577f0f
mov edi, dword [esi + 0xc]
test edi, edi
jne 0x578050
mov ecx, 1
jmp 0x578052
xor ecx, ecx
cmp edi, ecx
je 0x578067
xor edi, edi
sub edi, edx
mov edx, 0
sbb edx, eax
mov dword [esi + 4], edi
mov dword [esi + 8], edx
mov dword [esi + 0xc], ecx
cmp ecx, dword [esi + 0x20]
je 0x57807f
xor edx, edx
xor edi, edi
sub edx, dword [esi + 0x18]
sbb edi, dword [esi + 0x1c]
mov dword [esi + 0x18], edx
mov dword [esi + 0x1c], edi
mov dword [esi + 0x20], ecx
mov ecx, dword [ebx + 0x35]
jmp 0x577f0f
mov ecx, dword [ebx + 0x25]
mov edx, dword [ecx]
call dword [edx + 0x78]
cmp eax, 0x40
jne 0x57814b
lea ecx, [esp + 0x34]
push 0
call fcn.004ff268
movzx edx, word [0x65f3b0]
push edx
mov ecx, ebx
call fcn.005799b8
mov esi, eax
test esi, esi
je 0x57811d
xor edx, edx
mov dl, byte [esi + 0xa]
shl edx, 0x1a
sar edx, 0x1a
cmp edx, 6
jne 0x57823a
mov edx, dword [esi + 0x35]
test edx, edx
je 0x578227
movzx edi, word [edx + 0xa]
shl edi, 0x15
sar edi, 0x1b
cmp edi, 0xa
jne 0x5780ee
add edx, 0x17
jmp 0x5780fe
cmp edi, 1
jne 0x5780fb
mov edx, dword [edx + 0x17]
add edx, 4
jmp 0x5780fe
mov edx, dword [edx + 0x17]
lea ecx, [esp + 0x34]
push edx
push edi
call fcn.004ffc7c
mov edx, dword [esp + 0x3a]
cmp edx, 0xa
je 0x578167
mov edx, dword [ebx + 0x35]
mov edx, dword [edx + 0x17]
lea edi, [edx + 4]
jmp 0x578126
mov edx, dword [ebx + 0x35]
mov edx, dword [edx + 0x17]
lea edi, [edx + 4]
mov esi, dword [edi]
mov dword [esp + 8], esi
mov esi, dword [edi + 4]
mov eax, esi
sub eax, 0
jl 0x578262
lea ecx, [esp + 0x34]
call fcn.005003d8
mov ecx, dword [ebx + 0x35]
jmp 0x577f0f
mov ecx, dword [ebx + 0x25]
mov edx, dword [ecx]
call dword [edx + 0x78]
cmp eax, 0x79
je 0x57809b
mov ecx, dword [ebx + 0x35]
mov edx, dword [ebx + 0x79]
jmp 0x577f05
mov edx, dword [esi + 0x35]
test edx, edx
je 0x578214
movzx edi, word [edx + 0xa]
shl edi, 0x15
sar edi, 0x1b
cmp edi, 0xa
jne 0x578186
add edx, 0x17
jmp 0x578196
cmp edi, 1
jne 0x578193
mov edx, dword [edx + 0x17]
add edx, 4
jmp 0x578196
mov edx, dword [edx + 0x17]
lea ecx, [esp + 0x34]
push edx
push edi
call fcn.004ffc7c
mov edx, dword [esp + 0x34]
cmp dword [edx], 2
jne 0x5781b4
mov edx, 1
mov dword [esp], edx
jmp 0x5781b9
xor edx, edx
mov dword [esp], edx
mov edx, dword [ebx + 0x35]
mov edx, dword [edx + 0x17]
lea edi, [edx + 4]
mov eax, dword [edx + 4]
or eax, dword [edx + 8]
jne 0x5781d2
mov eax, dword [edx + 0x18]
or eax, dword [edx + 0x1c]
je 0x5781f0
push 0x62e884
mov ecx, esi
call fcn.005664a0
push 0
mov ecx, esi
call fcn.00578928
mov edx, dword [ebx + 0x35]
mov edx, dword [edx + 0x17]
lea edi, [edx + 4]
mov esi, dword [esp]
test esi, esi
je 0x578126
mov esi, 1
mov dword [edi + 8], esi
mov dword [edx + 0x20], esi
mov edx, dword [ebx + 0x35]
mov edx, dword [edx + 0x17]
lea edi, [edx + 4]
jmp 0x578126
lea ecx, [esp + 0x34]
push dword [esi + 0x31]
push 1
call fcn.004ffc7c
jmp 0x5781a1
lea ecx, [esp + 0x34]
push dword [esi + 0x31]
push 1
call fcn.004ffc7c
jmp 0x578109
cmp edx, 0xe
je 0x57824d
mov edx, dword [ebx + 0x35]
mov edx, dword [edx + 0x17]
lea edi, [edx + 4]
jmp 0x578126
mov ecx, esi
call fcn.004f6f70
mov dword [esp], eax
mov edx, dword [ebx + 0x35]
mov edx, dword [edx + 0x17]
lea edi, [edx + 4]
jmp 0x5781f0
mov eax, dword [edi + 8]
mov dword [esp + 4], eax
test eax, eax
jne 0x578277
mov eax, 1
mov dword [esp], eax
jmp 0x57827c
xor eax, eax
mov dword [esp], eax
mov ecx, eax
mov eax, dword [esp + 4]
cmp eax, ecx
je 0x57829a
xor eax, eax
mov ecx, dword [esp + 8]
sub eax, ecx
mov ecx, 0
sbb ecx, esi
mov dword [edi], eax
mov dword [edi + 4], ecx
mov esi, dword [esp]
mov dword [edi + 8], esi
lea eax, [edx + 0x18]
cmp esi, dword [edx + 0x20]
je 0x5782b6
xor edx, edx
xor esi, esi
sub edx, dword [eax]
sbb esi, dword [eax + 4]
mov dword [eax], edx
mov dword [eax + 4], esi
mov edx, dword [esp]
mov dword [eax + 8], edx
jmp 0x57813a
mov ecx, dword [ebx + 0x25]
mov edx, dword [ecx]
call dword [edx + 0x78]
cmp eax, 0x40
je 0x577fb7
mov ecx, dword [ebx + 0x25]
mov edx, dword [ecx]
call dword [edx + 0x78]
cmp eax, 0x79
je 0x577fb7
mov ecx, dword [ebx + 0x25]
mov edx, dword [ecx]
call dword [edx + 0x78]
cmp eax, 0x19
je 0x577fb7
mov ecx, dword [ebx + 0x25]
mov edx, dword [ecx]
call dword [edx + 0x78]
cmp eax, 0x7a
je 0x577fb7
mov ecx, dword [ebx + 0x25]
mov edx, dword [ecx]
call dword [edx + 0x78]
cmp eax, 0xd
je 0x577fb7
mov ecx, dword [ebx + 0x25]
mov edx, dword [ecx]
call dword [edx + 0x78]
cmp eax, 0x45
je 0x577fb7
test byte [esi + 9], 1
je 0x57835a
mov edx, dword [ebx + 0x79]
cmp edx, 4
je 0x578362
mov edx, dword [ebx + 0x35]
mov edi, dword [edx + 0x17]
mov esi, dword [esi + 0x17]
cmp esi, 2
jne 0x578347
xor edx, edx
jmp 0x57834c
mov edx, 1
mov dword [edi + 0x10], edx
mov dword [edi + 0x20], edx
mov ecx, dword [ebx + 0x35]
jmp 0x577f0f
mov ecx, dword [ebx + 0x35]
jmp 0x577f0f
mov edx, dword [ebx + 0x35]
mov edi, dword [edx + 0x17]
mov esi, dword [esi + 0x17]
cmp esi, 2
jne 0x578377
mov edx, 1
jmp 0x578379
xor edx, edx
mov dword [edi + 0xc], edx
mov dword [edi + 0x20], edx
mov ecx, dword [ebx + 0x35]
jmp 0x577f0f
mov eax, dword [esi + 6]
test eax, eax
jne 0x5783a8
mov edx, dword [ebx + 0x31]
mov al, byte [edx]
test al, al
je 0x577f4a
mov byte [edx], 0
mov ebp, 5
jmp 0x577f2c
cmp eax, 1
je 0x578446
lea ecx, [esp + 0xc]
push 1
call fcn.004ff268
lea ecx, [esp + 0xc]
push ebx
push 0
push dword [esi]
push dword [esi + 6]
call fcn.0055b4d8
mov ecx, dword [esp + 0xc]
mov esi, dword [ebx + 0x31]
mov dword [esp], esi
mov edi, ecx
mov dl, byte [edi]
cmp dl, byte [esi]
jne 0x5783f9
or dl, dl
je 0x5783f5
mov dl, byte [edi + 1]
cmp dl, byte [esi + 1]
jne 0x5783f9
add edi, 2
add esi, 2
or dl, dl
jne 0x5783d9
xor eax, eax
jmp 0x5783fe
sbb eax, eax
or eax, 1
test eax, eax
jne 0x578417
lea ecx, [esp + 0xc]
call fcn.005003d8
xor eax, eax
add esp, 0x40
pop ebx
pop ebp
pop esi
pop edi
ret 4
mov ebp, 1
mov dl, byte [ecx]
test dl, dl
je 0x57842b
mov esi, dword [esp]
mov dl, byte [esi]
test dl, dl
jne 0x578430
mov ebp, 5
push ecx
mov ecx, ebx
call fcn.005665a0
lea ecx, [esp + 0xc]
call fcn.005003d8
jmp 0x577f2c
mov ecx, dword [esi]
mov esi, dword [ebx + 0x31]
mov dword [esp], esi
mov edi, ecx
mov dl, byte [edi]
cmp dl, byte [esi]
jne 0x578470
or dl, dl
je 0x57846c
mov dl, byte [edi + 1]
cmp dl, byte [esi + 1]
jne 0x578470
add edi, 2
add esi, 2
or dl, dl
jne 0x578450
xor eax, eax
jmp 0x578475
sbb eax, eax
or eax, 1
test eax, eax
jne 0x578485
xor eax, eax
add esp, 0x40
pop ebx
pop ebp
pop esi
pop edi
ret 4
mov ebp, 1
mov dl, byte [ecx]
test dl, dl
je 0x578499
mov esi, dword [esp]
mov dl, byte [esi]
test dl, dl
jne 0x57849e
mov ebp, 5
push ecx
mov ecx, ebx
call fcn.005665a0
jmp 0x577f2c