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

Disassembly:
push edi
push esi
push ebp
push ebx
push ecx
mov eax, 0x54
call fcn.006021b0
mov ecx, dword [esp + 0x54]
mov ebp, ecx
test byte [ebp + 0xe], 1
je 0x56ef34
mov eax, dword [esp + 0x6c]
mov eax, dword [eax + 0x14]
cmp eax, 0x43
je 0x56f52f
cmp eax, 0x54
je 0x56f52f
movzx eax, word [ebp + 0xa]
shl eax, 0x15
sar eax, 0x1b
lea ecx, [esp + 0x14]
push eax
call fcn.004ff268
lea ecx, [esp + 0x20]
push 1
call fcn.004ff268
lea ecx, [esp + 0x2c]
push 0
call fcn.004ff268
lea edx, [esp + 0x38]
xor eax, eax
mov dword [edx], eax
mov word [edx + 4], ax
mov byte [edx + 6], al
push 0x6390b0
mov ecx, dword [0x65f510]
call fcn.004f3970
mov ecx, dword [0x65e7cc]
mov dword [esp + 0xc], ecx
mov word [esp + 0x10], ax
lea eax, [esp + 0x10]
push eax
call fcn.004e853c
lea edx, [esp + 0x2c]
push 0xa
push edx
mov ecx, eax
call fcn.004f7954
mov eax, dword [esp + 0x2c]
cmp dword [eax], 2
jne 0x56ee08
mov eax, 1
jmp 0x56ee0a
xor eax, eax
mov esi, 0xffffffff
mov word [esp + 0x38], si
or al, 0xfe
and al, 3
or al, 0x18
mov byte [esp + 0x3a], al
mov edx, 0xffffffff
or dl, 0xfe
and dl, 3
or dl, 0
mov byte [esp + 0x3b], dl
xor bl, bl
or bl, 0xfe
or bl, 0xfc
and bl, 7
or bl, 0x80
mov byte [esp + 0x3c], bl
mov al, byte [esp + 0x3d]
and al, 0xfe
mov byte [esp + 0x3d], al
movzx edx, word [ebp + 0xa]
shl edx, 0x15
sar edx, 0x1b
cmp edx, 0xa
jne 0x56ee60
lea eax, [ebp + 0x17]
jmp 0x56ee70
cmp edx, 1
jne 0x56ee6d
mov eax, dword [ebp + 0x17]
add eax, 4
jmp 0x56ee70
mov eax, dword [ebp + 0x17]
lea ecx, [esp + 0x14]
push eax
push edx
call fcn.004ffc7c
lea ecx, [esp + 0x20]
xor edx, edx
lea eax, [esp + 0x38]
push edx
push edx
push edx
push eax
push dword [esp + 0x24]
push edx
push dword [esp + 0x32]
call fcn.0055b198
cmp eax, 1
jne 0x56eeac
lea ecx, [esp + 0x20]
push 0x74e42c
push 1
call fcn.004ffc7c
mov ecx, dword [esp + 0x20]
cmp byte [ecx], 4
je 0x56f50c
mov ecx, dword [esp + 0x6c]
mov edx, dword [ebp + 0x1b]
call fcn.0056f558
mov esi, eax
test esi, esi
je 0x56ef19
mov ecx, 0x800
call fcn.004dbf60
mov ebx, eax
mov edx, dword [esp + 0x6c]
mov edx, dword [edx + 0x14]
cmp edx, 0x43
je 0x56ef40
cmp edx, 0x54
je 0x56ef40
mov ebp, dword [esp + 0x20]
mov dl, byte [ebp]
test dl, dl
je 0x56ef12
mov edi, dword [esp + 0x6c]
lea edx, [edi + 0x1c]
push ebp
push esi
push dword [edi + 8]
push dword [edi + 4]
push edx
push str.U_2.2s_06d_d__30s_s
push dword [edi]
call fcn.005084a8
add esp, 0x1c
mov ecx, ebx
call fcn.004dbc10
lea ecx, [esp + 0x2c]
call fcn.005003d8
lea ecx, [esp + 0x20]
call fcn.005003d8
lea ecx, [esp + 0x14]
call fcn.005003d8
xor eax, eax
add esp, 0x58
pop ebx
pop ebp
pop esi
pop edi
ret 4
mov edi, dword [esp + 0x20]
mov dl, byte [edi]
test dl, dl
jne 0x56f072
mov edx, dword [esp + 0x6c]
mov edx, dword [edx + 8]
test edx, edx
je 0x56ef65
push edx
mov edx, dword [esp + 0x70]
mov ecx, dword [edx]
call fcn.00508724
test dword [ebp + 0x1b], 0x100
je 0x56f057
mov edx, dword [esp + 0x6c]
mov eax, dword [edx + 0x1f]
xor edi, edi
mov edx, dword [0x64cedc]
test edx, edx
jle 0x56efcf
mov dword [esp + 8], ebx
mov dword [esp + 4], esi
mov dword [esp], ebp
mov esi, eax
lea ebx, [edi + edi]
lea ebp, [ebx + ebx]
cmp esi, dword [ebp + edi*8 + 0x64a444]
jne 0x56efbf
mov ecx, dword [esp + 4]
mov edx, dword [ebp + ebx*4 + 0x64a440]
call fcn.005005f8
test eax, eax
je 0x56f350
mov edx, dword [0x64cedc]
inc edi
cmp edi, edx
jl 0x56ef92
mov ebx, dword [esp + 8]
mov esi, dword [esp + 4]
mov ebp, dword [esp]
push esi
push str._UDF:_s
push 0
mov edx, dword [esp + 0x78]
push dword [edx]
call fcn.00507f90
add esp, 0x10
mov esi, dword [ebp + 0x1b]
lea ecx, [esp + 0x4c]
push 1
call fcn.004ff268
xor ebp, ebp
mov edi, dword [esp + 0x6c]
mov ecx, dword [edi + 0xc]
call fcn.004dbc10
xor edi, edi
mov eax, dword [esp + 0x6c]
mov dword [eax + 0xc], 0
test esi, 0x100
jne 0x56f254
lea ecx, [esp + 0x4c]
call fcn.005003d8
test edi, edi
je 0x56f03d
push edi
push str._DESC__s_
push 0
mov edx, dword [esp + 0x78]
push dword [edx]
call fcn.00507f90
add esp, 0x10
push 0x6390d8
push 1
mov edx, dword [esp + 0x74]
push dword [edx]
call fcn.00507f90
add esp, 0xc
jmp 0x56ef12
push esi
push 0x6347e4
push 1
mov edx, dword [esp + 0x78]
push dword [edx]
call fcn.00507f90
add esp, 0x10
jmp 0x56ef12
mov edx, dword [esp + 0x6c]
mov edx, dword [edx + 8]
test edx, edx
je 0x56f089
push edx
mov edx, dword [esp + 0x70]
mov ecx, dword [edx]
call fcn.00508724
test dword [ebp + 0x1b], 0x100
je 0x56f20a
mov edx, dword [esp + 0x6c]
mov eax, dword [edx + 0x1f]
xor edi, edi
mov edx, dword [0x64cedc]
test edx, edx
jle 0x56f0f3
mov dword [esp + 8], ebx
mov dword [esp + 4], esi
mov dword [esp], ebp
mov esi, eax
lea ebx, [edi + edi]
lea ebp, [ebx + ebx]
cmp esi, dword [ebp + edi*8 + 0x64a444]
jne 0x56f0e3
mov ecx, dword [esp + 4]
mov edx, dword [ebp + ebx*4 + 0x64a440]
call fcn.005005f8
test eax, eax
je 0x56f4a5
mov edx, dword [0x64cedc]
inc edi
cmp edi, edx
jl 0x56f0b6
mov ebx, dword [esp + 8]
mov esi, dword [esp + 4]
mov ebp, dword [esp]
mov edx, 0x630120
mov ecx, esi
call fcn.005005f8
test eax, eax
je 0x56ef12
mov edx, 0x63034c
mov ecx, esi
call fcn.005005f8
test eax, eax
je 0x56ef12
mov edx, 0x630568
mov ecx, esi
call fcn.005005f8
test eax, eax
je 0x56ef12
mov edx, 0x630584
mov ecx, esi
call fcn.005005f8
test eax, eax
je 0x56ef12
push esi
push str._UDF:_s
push 0
mov edx, dword [esp + 0x78]
push dword [edx]
call fcn.00507f90
add esp, 0x10
mov esi, dword [ebp + 0x1b]
lea ecx, [esp + 0x40]
push 1
call fcn.004ff268
xor edx, edx
mov dword [esp + 4], edx
mov edi, dword [esp + 0x6c]
mov ecx, dword [edi + 0xc]
call fcn.004dbc10
xor edi, edi
mov edx, dword [esp + 0x6c]
mov dword [edx + 0xc], 0
test esi, 0x100
jne 0x56f388
lea ecx, [esp + 0x40]
call fcn.005003d8
test edi, edi
je 0x56f1b5
push edi
push str._DESC__s_
push 0
mov edx, dword [esp + 0x78]
push dword [edx]
call fcn.00507f90
add esp, 0x10
push 0x6347d0
push 0
mov edx, dword [esp + 0x74]
push dword [edx]
call fcn.00507f90
push dword [esp + 0x2c]
push 0x62ca28
push 0
mov edx, dword [esp + 0x84]
push dword [edx]
call fcn.00508328
add esp, 0x1c
mov ecx, dword [esp + 0x6c]
mov edx, dword [ebp + 0x1b]
call fcn.0056f558
push eax
push str.__UDF:_s_
push 1
mov edx, dword [esp + 0x78]
push dword [edx]
call fcn.00507f90
add esp, 0x10
jmp 0x56ef12
push esi
push 0x6347dc
push 0
mov edx, dword [esp + 0x78]
push dword [edx]
call fcn.00507f90
push dword [esp + 0x30]
push 0x62ca28
push 0
mov edx, dword [esp + 0x88]
push dword [edx]
call fcn.00508328
push esi
push str.___s_
push 1
mov edx, dword [esp + 0x98]
push dword [edx]
call fcn.00507f90
add esp, 0x30
jmp 0x56ef12
lea ecx, [esp + 0x4c]
push 0x74e42c
push 1
call fcn.004ffc7c
mov dword [esp + 8], ebx
mov ecx, esi
mov edx, ebp
call fcn.004ee094
mov ebx, eax
test ebx, ebx
je 0x56f347
mov al, byte [ebx]
test al, al
je 0x56f2aa
lea ecx, [esp + 0x4c]
push 0x6390a4
call fcn.005000f0
lea ecx, [esp + 0x4c]
push ebx
call fcn.005000f0
lea ecx, [esp + 0x4c]
push 0x6390a4
call fcn.005000f0
inc ebp
jmp 0x56f268
mov ebx, dword [esp + 8]
mov ebp, dword [esp + 0x6c]
lea ecx, [ebp + 0xc]
mov edx, dword [esp + 0x4c]
call fcn.004ee018
mov edx, dword [esp + 0x6c]
mov ebp, dword [edx + 0xc]
mov dl, byte [ebp]
cmp dl, 0x21
je 0x56f336
mov eax, ebp
mov edi, dword [0x65f528]
test dl, dl
je 0x56f2f1
movsx edx, byte [ebp]
and edx, 0xff
mov dl, byte [edx + edi]
mov byte [eax], dl
movsx edx, byte [eax + 1]
inc eax
test edx, edx
jne 0x56f2dd
push 0x20
push ebp
call fcn.00603190
add esp, 8
test eax, eax
je 0x56f32a
lea edi, [eax + 1]
mov esi, eax
mov dl, byte [edi]
inc edi
mov byte [esi], dl
inc esi
test dl, dl
jne 0x56f305
push 0x20
push ebp
call fcn.00603190
add esp, 8
test eax, eax
jne 0x56f300
mov edx, dword [esp + 0x6c]
mov edi, dword [edx + 0xc]
jmp 0x56f01a
mov edx, dword [esp + 0x6c]
mov edi, dword [edx + 0xc]
jmp 0x56f01a
lea edi, [ebp + 1]
mov esi, ebp
mov dl, byte [edi]
inc edi
mov byte [esi], dl
inc esi
test dl, dl
jne 0x56f33b
jmp 0x56f2f1
mov ebx, dword [esp + 8]
jmp 0x56f2ae
mov eax, ebx
mov ebx, dword [esp + 8]
test ebx, ebx
je 0x56f36d
mov esi, ebx
mov edi, dword [ebp + eax*4 + 0x64a448]
mov dl, byte [edi]
inc edi
mov byte [esi], dl
inc esi
test dl, dl
jne 0x56f363
push ebx
push 0x6347e4
push 0
mov edx, dword [esp + 0x78]
push dword [edx]
call fcn.00507f90
add esp, 0x10
jmp 0x56ef12
lea ecx, [esp + 0x40]
push 0x74e42c
push 1
call fcn.004ffc7c
mov dword [esp + 8], ebx
mov dword [esp], ebp
mov ebp, dword [esp + 4]
mov ecx, esi
mov edx, ebp
call fcn.004ee094
mov ebx, eax
test ebx, ebx
je 0x56f499
mov al, byte [ebx]
test al, al
je 0x56f3e5
lea ecx, [esp + 0x40]
push 0x6390a4
call fcn.005000f0
lea ecx, [esp + 0x40]
push ebx
call fcn.005000f0
lea ecx, [esp + 0x40]
push 0x6390a4
call fcn.005000f0
inc ebp
jmp 0x56f3a3
mov ebx, dword [esp + 8]
mov ebp, dword [esp]
mov edi, dword [esp + 0x6c]
lea ecx, [edi + 0xc]
mov edx, dword [esp + 0x40]
call fcn.004ee018
mov edx, dword [esp + 0x6c]
mov edi, dword [edx + 0xc]
mov dword [esp + 4], edi
mov dl, byte [edi]
cmp dl, 0x21
je 0x56f488
mov ecx, edi
mov edi, dword [0x65f528]
test dl, dl
je 0x56f435
mov edx, dword [esp + 4]
movsx edx, byte [edx]
and edx, 0xff
mov dl, byte [edx + edi]
mov byte [ecx], dl
movsx edx, byte [ecx + 1]
inc ecx
test edx, edx
jne 0x56f421
push 0x20
mov edx, dword [esp + 8]
push edx
call fcn.00603190
add esp, 8
test eax, eax
je 0x56f47c
mov dword [esp], ebp
mov ebp, dword [esp + 4]
lea edi, [eax + 1]
mov esi, eax
mov dl, byte [edi]
inc edi
mov byte [esi], dl
inc esi
test dl, dl
jne 0x56f454
push 0x20
push ebp
call fcn.00603190
add esp, 8
test eax, eax
jne 0x56f44f
mov ebp, dword [esp]
mov edx, dword [esp + 0x6c]
mov edi, dword [edx + 0xc]
jmp 0x56f192
mov edx, dword [esp + 0x6c]
mov edi, dword [edx + 0xc]
jmp 0x56f192
mov esi, edi
lea edi, [esi + 1]
mov dl, byte [edi]
inc edi
mov byte [esi], dl
inc esi
test dl, dl
jne 0x56f48d
jmp 0x56f435
mov ebx, dword [esp + 8]
mov ebp, dword [esp]
jmp 0x56f3ec
mov eax, ebx
mov ebx, dword [esp + 8]
test ebx, ebx
je 0x56f4c2
mov esi, ebx
mov edi, dword [ebp + eax*4 + 0x64a448]
mov dl, byte [edi]
inc edi
mov byte [esi], dl
inc esi
test dl, dl
jne 0x56f4b8
push ebx
push 0x6347dc
push 0
mov edx, dword [esp + 0x78]
push dword [edx]
call fcn.00507f90
push dword [esp + 0x30]
push 0x62ca28
push 0
mov edx, dword [esp + 0x88]
push dword [edx]
call fcn.00508328
push ebx
push str.___s_
push 1
mov edx, dword [esp + 0x98]
push dword [edx]
call fcn.00507f90
add esp, 0x30
jmp 0x56ef12
call fcn.005108d8
cmp eax, 0x17
je 0x56eeb9
lea ecx, [esp + 0x20]
push 0x74e42c
push 1
call fcn.004ffc7c
jmp 0x56eeb9
mov ecx, ebp
call fcn.00503818
test eax, eax
je 0x56ed88
mov eax, dword [ebp + 0x1b]
cmp eax, 0x45b
je 0x56ed88
xor eax, eax
add esp, 0x58
pop ebx
pop ebp
pop esi
pop edi
ret 4