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

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff0
sub esp, 0x90
mov dword [esp + 0x3c], edx
mov dword [esp + 0x28], 0xffffffff
mov dword [esp + 0x5c], 0
mov edx, dword [ecx + 4]
mov eax, dword [ecx + 8]
mov dword [esp + 0x40], eax
movzx esi, byte [eax + 0x10]
shl esi, 6
mov dword [esp + 0x20], 0
cmp dword [edx + 0xc], 0
mov dword [esp + 0x34], ecx
mov ecx, dword [ecx]
mov eax, dword [ecx]
mov dword [esp + 0x48], eax
mov edi, dword [ecx + 4]
mov dword [esp + 0x4c], ecx
mov eax, dword [ecx + 8]
mov dword [esp + 0x30], eax
mov dword [esp + 0x10], esi
mov dword [esp + 0x18], edi
mov eax, dword [edi + esi + 0x18]
mov dword [esp + 0x2c], eax
mov dword [esp + 0xc], 0
mov dword [esp + 0x14], edx
jle 0x4be567
mov ebx, dword [edx + 0x18]
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x18]
add eax, ecx
add eax, 0x30
mov dword [esp + 8], eax
mov dword [esp + 0xc], 0
xor eax, eax
jmp 0x4be50d
inc dword [esp + 0xc]
or edx, 0x40
mov word [ebx + 0xa], dx
nop word [eax + eax]
mov ecx, dword [esp + 0x14]
inc eax
add ebx, 0x30
cmp eax, dword [ecx + 0xc]
jge 0x4be567
movzx edx, word [ebx + 0xa]
mov esi, edx
and esi, 0xffffffbf
mov word [ebx + 0xa], si
mov edi, dword [ebx + 0x14]
mov ecx, dword [esp + 8]
cmp edi, dword [ecx]
jne 0x4be500
mov esi, dword [ebx + 0x20]
and esi, dword [ebp + 0xc]
mov ecx, dword [ebx + 0x24]
and ecx, dword [ebp + 0x10]
or ecx, esi
jne 0x4be500
movzx ecx, word [ebx + 0xc]
test ecx, 0xf7ff
je 0x4be500
mov ecx, edx
and ecx, 0x80
test cx, cx
jne 0x4be500
mov ecx, dword [esp + 8]
test byte [ecx - 4], 0x58
je 0x4be4ec
mov esi, dword [ebx]
test byte [esi + 4], 3
je 0x4be500
cmp dword [esi + 0x24], edi
je 0x4be4ec
jmp 0x4be500
mov ebx, 0
mov eax, dword [esp + 0x30]
test eax, eax
je 0x4be746
mov ecx, dword [eax]
mov dword [esp + 0x20], 0
mov esi, 0
mov dword [esp + 8], ecx
test ecx, ecx
jle 0x4be715
mov ecx, dword [esp + 0x10]
mov edx, dword [esp + 0x18]
add ecx, edx
add ecx, 0x30
mov dword [esp + 0x10], ecx
xor esi, esi
jmp 0x4be5bf
inc esi
cmp esi, dword [esp + 8]
mov eax, dword [esp + 0x30]
je 0x4be720
mov edi, esi
shl edi, 4
mov ebx, dword [eax + edi + 8]
pcmpeqd xmm0, xmm0
movdqa xmmword [esp + 0x60], xmm0
mov dword [esp + 0x74], 0xffffffff
mov dword [esp + 0x70], 0xffffffff
mov word [esp + 0x74], 1
mov dword [esp + 0x64], 0x499e30
mov dword [esp + 0x68], 0x499fa0
mov dword [esp + 0x78], 0
test ebx, ebx
je 0x4be5b0
lea ecx, [esp + 0x60]
mov edx, ebx
call fcn.00499fb0
cmp word [esp + 0x74], 0
jne 0x4be5b0
mov eax, dword [esp + 0x30]
test byte [eax + edi + 0x10], 2
jne 0x4be715
movzx eax, byte [ebx]
cmp eax, 0x71
je 0x4be64e
cmp eax, 0xa7
jne 0x4be715
mov eax, dword [ebx + 0x1c]
mov ecx, dword [esp + 0x10]
cmp eax, dword [ecx]
je 0x4be5b0
jmp 0x4be715
mov eax, dword [ebx + 0xc]
cmp byte [eax], 0xa7
jne 0x4be715
mov ecx, dword [eax + 0x1c]
mov edx, dword [esp + 0x10]
cmp ecx, dword [edx]
jne 0x4be715
movzx ecx, word [eax + 0x20]
mov word [ebx + 0x20], cx
movzx eax, word [eax + 0x20]
test ax, ax
js 0x4be5b0
mov ecx, dword [esp + 0x2c]
mov ecx, dword [ecx + 4]
lea edi, [eax + eax*2]
movzx edx, word [ecx + edi*4 + 0xa]
xor eax, eax
test edx, 0x200
je 0x4be6cc
mov ecx, dword [ecx + edi*4]
dec ecx
nop dword [eax + eax]
cmp byte [ecx + 1], 0
lea ecx, [ecx + 1]
jne 0x4be6a0
test dl, 4
jne 0x4be6c0
mov eax, ecx
jmp 0x4be6cb
lea eax, [ecx + 1]
cmp byte [ecx + 1], 0
mov ecx, eax
jne 0x4be6c0
inc eax
mov edi, dword [ebx + 8]
test edi, edi
je 0x4be715
test eax, eax
mov ecx, str.BINARY
cmove eax, ecx
xor edx, edx
jmp 0x4be700
movzx ebx, byte [ebx + 0x52a853]
cmp bl, byte [ecx + 0x52a853]
jne 0x4be715
inc edx
movzx ebx, byte [edi + edx]
movzx ecx, byte [eax + edx]
cmp bl, cl
jne 0x4be6f0
test ebx, ebx
jne 0x4be6ff
jmp 0x4be5b0
mov ebx, 0
cmp esi, dword [esp + 8]
jne 0x4be746
mov eax, dword [esp + 0x4c]
movzx ebx, word [eax + 0x2c]
test bl, 0x80
jne 0x4be735
shr ebx, 6
and ebx, 1
jmp 0x4be73e
shr ebx, 9
and ebx, 1
or ebx, 2
mov eax, dword [esp + 8]
mov dword [esp + 0x20], eax
mov eax, dword [esp + 0x48]
mov ecx, dword [eax]
mov esi, dword [esp + 0x20]
lea eax, [esi*8]
mov edx, dword [esp + 0xc]
lea edx, [edx + edx*2]
lea edi, [eax + edx*8]
add edi, 0x60
test ecx, ecx
mov dword [esp + 8], ebx
mov dword [esp + 0x10], edx
je 0x4be77e
mov edx, edi
push 0
call fcn.0043f5f0
add esp, 4
jmp 0x4be787
mov ecx, edi
xor edx, edx
call fcn.00424d20
mov ebx, eax
test eax, eax
je 0x4be988
push edi
push 0
push ebx
call sub.api_ms_win_crt_string_l1_1_0.dll_memset
add esp, 0xc
mov ecx, dword [esp + 0xc]
lea eax, [ebx + ecx*4]
add eax, 0x48
lea edx, [ebx + ecx*4 + 0x5c]
mov ecx, dword [esp + 0x10]
lea ecx, [eax + ecx*4 + 0x14]
lea eax, [ecx + esi*8]
mov dword [esp + 0xc], edx
mov dword [ebx + 4], edx
mov dword [esp + 0x4c], ecx
mov dword [ebx + 0xc], ecx
mov dword [ebx + 0x10], eax
mov ecx, dword [esp + 0x14]
mov dword [ebx + 0x48], ecx
mov eax, dword [esp + 0x48]
mov dword [ebx + 0x4c], eax
mov eax, dword [esp + 8]
mov dword [ebx + 0x50], eax
mov dword [esp + 0x1c], ebx
mov dword [ebx + 0x54], 0
mov eax, dword [ecx + 0xc]
mov dword [esp + 0x10], 0
test eax, eax
jle 0x4be9a3
mov edx, dword [ecx + 0x18]
mov dword [esp + 0x24], 0
mov dword [esp + 8], 0
xor ebx, ebx
mov ecx, dword [esp + 0xc]
jmp 0x4be840
mov ecx, dword [esp + 0xc]
mov byte [ecx + edi*4 + 4], 2
mov edi, dword [esp + 0x14]
inc dword [esp + 8]
mov eax, dword [edi + 0xc]
inc ebx
add edx, 0x30
cmp ebx, eax
jge 0x4be9b3
test byte [edx + 0xa], 0x40
je 0x4be834
mov eax, dword [edx + 0x18]
mov edi, dword [esp + 8]
lea edi, [edi + edi*2]
mov dword [ecx + edi*4], eax
mov dword [ecx + edi*4 + 8], ebx
movzx ecx, word [edx + 0xc]
mov eax, ecx
and eax, 0x3fff
cmp ax, 1
jne 0x4be890
cmp word [edx + 0xa], 0
js 0x4be820
mov eax, 1
mov ecx, dword [esp + 8]
shl eax, cl
cmp ecx, 0x20
mov ecx, 0
cmovge eax, ecx
mov ecx, dword [esp + 0x1c]
or dword [ecx + 0x54], eax
jmp 0x4be820
mov dword [esp + 0x18], ecx
mov ecx, dword [esp + 0xc]
lea edi, [ecx + edi*4]
add edi, 4
cmp ax, 0x40
jne 0x4be8b7
movzx eax, byte [edx + 0xf]
mov byte [edi], al
mov edi, dword [esp + 0x14]
mov ecx, dword [esp + 0xc]
jmp 0x4be82d
test eax, 0x180
mov dword [esp + 0x2c], edi
je 0x4be8e0
movzx eax, ax
cmp eax, 0x100
mov edi, dword [esp + 0x14]
mov ecx, dword [esp + 0xc]
jne 0x4be920
mov eax, dword [esp + 0x2c]
mov byte [eax], 0x47
jmp 0x4be82d
mov ecx, dword [esp + 0x18]
mov byte [edi], cl
test al, 0x3c
mov edi, dword [esp + 0x14]
je 0x4be8ae
mov ecx, dword [edx]
mov ecx, dword [ecx + 0x10]
mov dword [esp + 0x18], ecx
movzx ecx, byte [ecx]
cmp cl, 0xb0
jne 0x4be907
mov ecx, dword [esp + 0x18]
movzx ecx, byte [ecx + 2]
cmp cl, 0x8a
je 0x4be92c
movzx ecx, cl
cmp ecx, 0xb1
jne 0x4be8ae
mov ecx, dword [esp + 0x18]
add ecx, 0x14
jmp 0x4be936
mov eax, dword [esp + 0x2c]
mov byte [eax], 0x48
jmp 0x4be82d
mov ecx, dword [esp + 0x18]
mov ecx, dword [ecx + 0x14]
add ecx, 0x1c
mov ecx, dword [ecx]
cmp dword [ecx], 2
jl 0x4be8ae
mov esi, 1
mov ecx, dword [esp + 8]
shl esi, cl
cmp ecx, 0x10
mov ecx, 0
cmovge esi, ecx
mov ecx, dword [esp + 0x24]
or ecx, esi
cmp ax, 4
mov dword [esp + 0x24], ecx
je 0x4be978
movzx eax, ax
cmp eax, 0x10
jne 0x4be97f
mov eax, dword [esp + 0x2c]
mov byte [eax], 8
jmp 0x4be97f
mov eax, dword [esp + 0x2c]
mov byte [eax], 0x20
mov esi, dword [esp + 0x20]
jmp 0x4be8ae
push str.out_of_memory
push dword [esp + 0x4c]
call fcn.00434540
add esp, 8
mov eax, 7
jmp 0x4bf035
mov dword [esp + 8], 0
mov dword [esp + 0x24], 0
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 8]
mov dword [eax], ecx
test esi, esi
mov ecx, dword [esp + 0x30]
jle 0x4bea62
add ecx, 0x10
mov dword [esp + 0x10], 0
jmp 0x4be9ea
mov ecx, esi
mov esi, ebx
add ecx, 0x10
dec esi
je 0x4bea62
mov edi, dword [ecx - 8]
pcmpeqd xmm0, xmm0
movdqa xmmword [esp + 0x60], xmm0
mov dword [esp + 0x74], 0xffffffff
mov dword [esp + 0x70], 0xffffffff
mov word [esp + 0x74], 1
mov dword [esp + 0x64], 0x499e30
mov dword [esp + 0x68], 0x499fa0
mov dword [esp + 0x78], 0
test edi, edi
je 0x4be9e4
mov ebx, esi
mov esi, ecx
lea ecx, [esp + 0x60]
mov edx, edi
call fcn.00499fb0
cmp word [esp + 0x74], 0
jne 0x4be9e0
movsx eax, word [edi + 0x20]
mov edx, dword [esp + 0x4c]
mov edi, dword [esp + 0x10]
mov dword [edx + edi*8], eax
mov ecx, esi
movzx eax, byte [esi]
and al, 1
mov byte [edx + edi*8 + 4], al
inc edi
mov dword [esp + 0x10], edi
jmp 0x4be9e2
mov ebx, dword [esp + 0x1c]
mov eax, dword [esp + 0x10]
mov dword [ebx + 8], eax
mov eax, dword [esp + 0x40]
mov word [eax + 0x12], 0
mov dword [eax + 0x28], 0x400
mov word [eax + 0x2c], 0
and byte [eax + 0x1c], 0xfe
mov ecx, dword [ebx]
movzx eax, word [eax + 0x30]
mov dword [esp + 0x44], ecx
cmp ecx, eax
jle 0x4beaff
mov esi, dword [esp + 0x48]
mov ecx, dword [esi]
mov eax, dword [esp + 0x44]
lea ebx, [eax + 7]
and ebx, 0xfffffff8
lea edx, [ebx*4]
mov dword [esp + 8], ecx
push 0
call fcn.0043f5f0
add esp, 4
test eax, eax
je 0x4bec14
mov edi, eax
mov esi, dword [esp + 0x40]
movzx eax, word [esi + 0x30]
shl eax, 2
push eax
push dword [esi + 0x34]
push edi
call sub.api_ms_win_crt_private_l1_1_0.dll_memcpy
add esp, 0xc
mov edx, dword [esi + 0x34]
lea eax, [esi + 0x3c]
cmp edx, eax
je 0x4beaf0
mov ecx, dword [esp + 8]
call fcn.0043f4f0
mov eax, dword [esp + 0x40]
mov dword [eax + 0x34], edi
mov word [eax + 0x30], bx
mov ebx, dword [esp + 0x1c]
movzx eax, word [esp + 0x24]
mov ecx, dword [esp + 0x34]
mov esi, dword [esp + 0x3c]
mov edx, esi
lea edi, [esp + 0x5c]
push edi
lea edi, [esp + 0x2c]
push edi
mov dword [esp + 0x2c], eax
push eax
push ebx
push 0
push 0xffffffffffffffff
push 0xffffffffffffffff
push dword [ebp + 8]
call fcn.004c0230
add esp, 0x20
cmp dword [esp + 0x5c], 0
je 0x4beb5c
mov ecx, dword [esp + 0x34]
mov edx, esi
push 0
lea eax, [esp + 0x2c]
push eax
push dword [esp + 0x2c]
push ebx
push 0
push 0xffffffffffffffff
push 0xffffffffffffffff
mov esi, dword [ebp + 8]
push esi
call fcn.004c0230
add esp, 0x20
jmp 0x4beb5f
mov esi, dword [ebp + 8]
mov edi, eax
test eax, eax
jne 0x4bef62
mov ecx, esi
not ecx
mov edx, dword [esp + 0x3c]
not edx
mov eax, dword [esp + 0x40]
mov ebx, esi
mov esi, dword [eax]
mov dword [esp + 0x18], edx
and esi, edx
mov edx, dword [eax + 4]
mov dword [esp + 0x10], ecx
and edx, ecx
mov dword [esp + 0x84], esi
mov eax, esi
mov esi, ebx
mov dword [esp + 0x80], edx
or eax, edx
mov edx, dword [esp + 0x34]
mov eax, dword [esp + 0x28]
jne 0x4bebb2
xor edi, edi
test eax, eax
je 0x4bef62
xor ebx, ebx
test eax, eax
je 0x4bec7b
mov ecx, edx
mov edx, dword [esp + 0x3c]
push 0
lea eax, [esp + 0x2c]
push eax
push dword [esp + 0x2c]
push dword [esp + 0x28]
push 1
push 0xffffffffffffffff
push 0xffffffffffffffff
push esi
call fcn.004c0230
mov edx, dword [esp + 0x54]
add esp, 0x20
mov edi, eax
mov eax, dword [esp + 0x40]
mov ecx, dword [eax + 4]
and ecx, dword [esp + 0x10]
mov eax, dword [eax]
and eax, dword [esp + 0x18]
mov dword [esp + 0x54], eax
mov dword [esp + 0x58], ecx
or eax, ecx
sete al
test edi, edi
jne 0x4bef62
xor ecx, ecx
mov cl, al
mov eax, ecx
jmp 0x4bec8d
mov esi, dword [esi]
mov edx, dword [esp + 0x1c]
mov eax, dword [edx]
test eax, eax
jle 0x4bec6a
xor ebx, ebx
jmp 0x4bec54
mov ecx, edi
call fcn.00455c20
mov ecx, dword [edi + 0x14]
mov edx, edi
call fcn.0043f4f0
mov edx, dword [esp + 0x1c]
mov eax, dword [edx]
mov dword [edx + ebx*4 + 0x5c], 0
inc ebx
cmp ebx, eax
jge 0x4bec6a
mov edi, dword [edx + ebx*4 + 0x5c]
test edi, edi
je 0x4bec47
test byte [edi + 0x11], 0x90
jne 0x4bec30
cmp dword [edi + 0x18], 0
jne 0x4bec30
jmp 0x4bec37
mov ecx, esi
call fcn.0043f4f0
mov eax, 7
jmp 0x4bf035
mov dword [esp + 0x54], 0
mov dword [esp + 0x58], 0
xor eax, eax
mov ecx, dword [esp + 0x44]
and ecx, 0xfffffffe
mov dword [esp + 0x2c], ecx
xor ecx, ecx
mov dword [esp + 0x38], eax
mov dword [esp + 0x50], eax
jmp 0x4becbd
mov ecx, esi
mov esi, dword [ebp + 8]
test edi, edi
jne 0x4bef62
cmp dword [esp + 0x44], 0
jle 0x4beee8
mov eax, dword [esp + 0x14]
mov eax, dword [eax + 0x18]
mov dword [esp + 0x30], eax
mov eax, dword [esp + 0x1c]
mov eax, dword [eax + 4]
cmp dword [esp + 0x44], 1
mov dword [esp + 8], ebx
mov dword [esp + 0xc], ecx
mov dword [esp + 0x88], eax
jne 0x4bee20
xor eax, eax
mov esi, 0xffffffff
mov edx, 0xffffffff
test byte [esp + 0x44], 1
je 0x4bed53
lea eax, [eax + eax*2]
mov ecx, dword [esp + 0x88]
mov eax, dword [ecx + eax*4 + 8]
lea eax, [eax + eax*2]
shl eax, 4
mov ebx, edx
mov edx, dword [esp + 0x30]
mov ecx, dword [edx + eax + 0x24]
mov edx, dword [edx + eax + 0x20]
and ecx, dword [esp + 0x10]
and edx, dword [esp + 0x18]
cmp dword [esp + 0xc], edx
sbb dword [esp + 8], ecx
setb al
cmp edx, esi
mov edi, esi
mov esi, ecx
sbb esi, ebx
mov esi, edi
setb ah
test al, ah
cmovne ebx, ecx
cmovne esi, edx
mov edx, ebx
mov ebx, edx
mov ecx, esi
mov eax, esi
and eax, edx
cmp eax, 0xffffffff
mov esi, dword [ebp + 8]
mov edx, dword [esp + 0x34]
je 0x4beee8
mov eax, ecx
xor eax, dword [esp + 0x84]
mov esi, ecx
mov ecx, ebx
xor ecx, dword [esp + 0x80]
xor edi, edi
or ecx, eax
je 0x4becb0
mov eax, esi
xor eax, dword [esp + 0x54]
mov ecx, ebx
xor ecx, dword [esp + 0x58]
or ecx, eax
je 0x4becb0
mov dword [esp + 8], ebx
mov eax, ebx
or eax, dword [ebp + 8]
mov dword [esp + 0xc], esi
mov ebx, dword [esp + 0x3c]
or esi, ebx
mov ecx, edx
mov edx, ebx
push 0
lea edi, [esp + 0x2c]
push edi
push dword [esp + 0x2c]
push dword [esp + 0x28]
push 0
push eax
push esi
mov esi, dword [ebp + 8]
push esi
call fcn.004c0230
add esp, 0x20
mov edi, eax
mov ecx, dword [esp + 0x40]
mov eax, dword [ecx + 4]
xor eax, esi
mov ecx, dword [ecx]
xor ecx, ebx
or ecx, eax
jne 0x4bee03
cmp dword [esp + 0x28], 0
mov ecx, 1
mov eax, dword [esp + 0x38]
mov dword [esp + 0x50], 1
cmove eax, ecx
mov dword [esp + 0x38], eax
mov edx, dword [esp + 0x34]
mov ebx, dword [esp + 8]
mov ecx, dword [esp + 0xc]
jmp 0x4becb5
lea ebx, [eax + 0x14]
mov esi, 0xffffffff
xor eax, eax
mov edx, 0xffffffff
jmp 0x4bee58
mov eax, dword [esp + 0x4c]
add eax, 2
mov ebx, dword [esp + 0x20]
add ebx, 0x18
cmp dword [esp + 0x2c], eax
je 0x4bed00
mov dword [esp + 0x20], esi
mov dword [esp + 0x4c], eax
mov ecx, dword [ebx - 0xc]
lea ecx, [ecx + ecx*2]
shl ecx, 4
mov eax, dword [esp + 0x30]
mov edi, dword [eax + ecx + 0x24]
and edi, dword [esp + 0x10]
mov ecx, dword [eax + ecx + 0x20]
and ecx, dword [esp + 0x18]
cmp dword [esp + 0xc], ecx
mov eax, dword [esp + 8]
sbb eax, edi
setb al
cmp ecx, esi
mov esi, edi
sbb esi, edx
setb ah
test al, ah
jne 0x4bee9d
mov edi, edx
mov ecx, dword [esp + 0x20]
mov dword [esp + 0x20], ebx
mov eax, dword [ebx]
lea eax, [eax + eax*2]
shl eax, 4
mov esi, dword [esp + 0x30]
mov ebx, dword [esi + eax + 0x24]
and ebx, dword [esp + 0x10]
mov edx, dword [esi + eax + 0x20]
and edx, dword [esp + 0x18]
cmp dword [esp + 0xc], edx
mov eax, dword [esp + 8]
sbb eax, ebx
setb al
cmp edx, ecx
mov esi, ebx
sbb esi, edi
mov esi, edx
mov edx, ebx
setb ah
test al, ah
jne 0x4bee40
mov edx, edi
mov esi, ecx
jmp 0x4bee40
xor edi, edi
cmp dword [esp + 0x50], 0
mov eax, dword [esp + 0x38]
jne 0x4bef3a
mov ecx, edx
mov edi, esi
mov esi, edx
mov edx, dword [esp + 0x3c]
push 0
lea eax, [esp + 0x2c]
push eax
push dword [esp + 0x2c]
push dword [esp + 0x28]
push 0
push edi
push edx
push edi
call fcn.004c0230
mov edx, esi
mov esi, edi
add esp, 0x20
cmp dword [esp + 0x28], 0
mov edi, eax
mov eax, 1
mov ecx, dword [esp + 0x38]
cmove ecx, eax
mov dword [esp + 0x38], ecx
mov eax, dword [esp + 0x38]
or eax, edi
jne 0x4bef62
mov ecx, edx
mov edx, dword [esp + 0x3c]
push 0
lea eax, [esp + 0x2c]
push eax
push dword [esp + 0x2c]
push dword [esp + 0x28]
push 1
push esi
push edx
push esi
call fcn.004c0230
add esp, 0x20
mov edi, eax
mov dword [esp + 0x14], edi
mov ebx, dword [esp + 0x1c]
cmp dword [ebx + 0x1c], 0
je 0x4befcf
mov esi, dword [ebx + 0x18]
test esi, esi
je 0x4befcf
cmp dword [0x53c208], 0
je 0x4befc5
mov eax, dword [0x53de88]
test eax, eax
je 0x4bef93
push eax
call dword [0x53c258]
add esp, 4
push esi
call dword [0x53c234]
add esp, 4
sub dword [0x53de30], eax
dec dword [0x53de54]
push esi
call dword [0x53c22c]
add esp, 4
mov eax, dword [0x53de88]
test eax, eax
je 0x4befcf
push eax
call dword [0x53c260]
jmp 0x4befcc
push esi
call dword [0x53c22c]
add esp, 4
mov eax, dword [esp + 0x48]
mov eax, dword [eax]
mov dword [esp + 8], eax
mov eax, dword [ebx]
test eax, eax
jle 0x4bf026
xor esi, esi
jmp 0x4bf010
mov ecx, edi
call fcn.00455c20
mov ecx, dword [edi + 0x14]
mov edx, edi
call fcn.0043f4f0
mov eax, dword [ebx]
mov dword [ebx + esi*4 + 0x5c], 0
inc esi
cmp esi, eax
jge 0x4bf026
mov edi, dword [ebx + esi*4 + 0x5c]
test edi, edi
je 0x4bf003
test byte [edi + 0x11], 0x90
jne 0x4beff0
cmp dword [edi + 0x18], 0
jne 0x4beff0
jmp 0x4beff7
mov ecx, dword [esp + 8]
mov edx, ebx
call fcn.0043f4f0
mov eax, dword [esp + 0x14]
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret