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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0xd4
push ebx
push esi
mov esi, ecx
mov dword [esp + 0x38], 0
mov ecx, dword [ebp + 8]
push edi
mov edi, edx
mov dword [esp + 0x4c], esi
mov ebx, dword [esi + 0xc]
mov edx, dword [esi]
mov dword [esp + 0x34], edi
mov dword [esp + 0x30], ebx
mov dword [esp + 0x14], ecx
mov dword [esp + 0x40], 0
mov dword [esp + 0x1c], edx
test ebx, ebx
jne 0x4b0d6c
xor eax, eax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
test edi, edi
je case.0x4b0d90.98
movzx eax, byte [edi]
mov dword [esp + 0x2c], eax
add eax, 0xffffffed
cmp eax, 0x8a
ja case.0x4b0d90.21
movzx eax, byte [eax + 0x4b2974]
jmp dword [eax*4 + 0x4b2914]
mov edx, dword [edi + 0x30]
movsx eax, word [edi + 0x28]
cmp byte [edx], 0
lea eax, [eax + eax*2]
jne 0x4b0db2
mov ecx, dword [edx + 0x10]
mov ebx, dword [ecx + eax*8 + 0x10]
jmp 0x4b0ee8
cmp byte [edx + 1], 0
je case.0x4b0d90.152
mov ecx, dword [edx + 0x10]
mov edi, dword [ebx + 0xc]
mov eax, dword [ecx + eax*8 + 0xc]
mov dword [esp + 0x18], eax
mov eax, dword [edx + 4]
mov dword [esp + 0x10], eax
cmp dword [ebx + 0x10], edi
jg 0x4b0de1
mov ecx, ebx
call fcn.004a1610
test eax, eax
jne 0x4b0ee4
mov eax, dword [ebx + 0x14]
lea ecx, [edi + edi*4]
inc dword [ebx + 0xc]
mov edx, dword [esp + 0x10]
mov dword [eax + ecx*4 + 4], edx
mov edx, dword [esp + 0x18]
mov dword [eax + ecx*4 + 8], edx
mov edx, dword [ebp + 8]
mov word [eax + ecx*4], 0x1c
mov byte [eax + ecx*4 + 3], 0
mov dword [eax + ecx*4 + 0xc], edx
mov dword [eax + ecx*4 + 0x10], 0
mov byte [ebx + 0x6e], 0
mov ebx, edx
jmp 0x4b0ee8
mov edx, dword [edi + 0x18]
test edx, edx
jns 0x4b0e31
mov ebx, dword [esi + 0x50]
add ebx, dword [edi + 0x20]
jmp 0x4b0ee8
movzx eax, word [edi + 2]
and eax, 0x200
push eax
push ecx
push edx
push dword [edi + 0x20]
mov edx, dword [edi + 0x34]
mov ecx, esi
call fcn.004b06d0
add esp, 0x10
mov ebx, eax
jmp 0x4b0ee8
push ecx
push 0
mov edx, edi
mov ecx, ebx
call fcn.004b0110
jmp 0x4b0ee1
mov ecx, dword [edi + 4]
test ecx, ecx
je 0x4b0ee4
lea edx, [esp + 0x50]
call fcn.004938a0
lea edx, [esp + 0x50]
mov ecx, ebx
call fcn.004affb0
mov edi, dword [ebx + 0xc]
mov dword [esp + 0x10], eax
cmp dword [ebx + 0x10], edi
jg 0x4b0e9b
mov ecx, ebx
call fcn.004a1610
test eax, eax
je 0x4b0e9b
mov edi, 1
jmp 0x4b0ed2
mov eax, dword [ebx + 0x14]
lea ecx, [edi + edi*4]
inc dword [ebx + 0xc]
mov edx, dword [ebp + 8]
mov word [eax + ecx*4], 0x82
mov byte [eax + ecx*4 + 3], 0
mov dword [eax + ecx*4 + 4], 0
mov dword [eax + ecx*4 + 8], edx
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov byte [ebx + 0x6e], 0
push 0xfffffffffffffff4
push dword [esp + 0x14]
mov edx, edi
mov ecx, ebx
call fcn.004a1c70
add esp, 8
mov ebx, dword [esp + 0x14]
cmp dword [esp + 0x3c], 0
je 0x4b28c9
cmp byte [esi + 0x15], 8
jae 0x4b28c9
xor ecx, ecx
lea eax, [esi + 0x60]
mov edx, dword [esp + 0x3c]
cmp dword [eax + 0x10], edx
je 0x4b28c5
inc ecx
add eax, 0x18
cmp ecx, 0xa
jl 0x4b0f02
movzx eax, byte [esi + 0x15]
mov dword [esi + eax*4 + 0x18], edx
inc byte [esi + 0x15]
jmp 0x4b28c9
mov eax, dword [edi + 4]
mov edi, dword [ebx + 0xc]
mov dword [esp + 0x10], eax
cmp dword [ebx + 0x10], edi
jg 0x4b0f4b
mov ecx, ebx
call fcn.004a1610
test eax, eax
je 0x4b0f4b
mov edi, 1
push 0
jmp 0x4b0ed4
mov eax, dword [ebx + 0x14]
lea ecx, [edi + edi*4]
inc dword [ebx + 0xc]
mov edx, dword [ebp + 8]
push 0
mov word [eax + ecx*4], 0x5e
mov byte [eax + ecx*4 + 3], 0
mov dword [eax + ecx*4 + 4], 0
mov dword [eax + ecx*4 + 8], edx
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov byte [ebx + 0x6e], 0
jmp 0x4b0ed4
mov edx, dword [edi + 4]
add edx, 2
mov eax, edx
jne 0x4b0f97
xor eax, eax
jmp 0x4b0fad
cmp byte [edx], 0
je 0x4b0fa6
lea esp, [esp]
inc eax
cmp byte [eax], 0
jne 0x4b0fa0
sub eax, edx
and eax, 0x3fffffff
mov ecx, dword [ebx]
dec eax
push eax
mov dword [esp + 0x14], eax
call fcn.00494280
mov edi, dword [ebx + 0xc]
add esp, 4
mov dword [esp + 0x18], eax
cmp dword [ebx + 0x10], edi
jg 0x4b0fe4
mov ecx, ebx
call fcn.004a1610
test eax, eax
je 0x4b0fe4
push 0xffffffffffffffff
push dword [esp + 0x1c]
mov edi, 1
jmp 0x4b0ed8
mov ecx, dword [ebx + 0x14]
lea esi, [edi + edi*4]
inc dword [ebx + 0xc]
mov eax, dword [esp + 0x10]
cdq
sub eax, edx
mov word [ecx + esi*4], 0xb
sar eax, 1
mov dword [ecx + esi*4 + 4], eax
mov eax, dword [ebp + 8]
mov byte [ecx + esi*4 + 3], 0
mov dword [ecx + esi*4 + 8], eax
mov dword [ecx + esi*4 + 0xc], 0
mov dword [ecx + esi*4 + 0x10], 0
mov esi, dword [esp + 0x4c]
push 0xffffffffffffffff
push dword [esp + 0x1c]
mov byte [ebx + 0x6e], 0
jmp 0x4b0ed8
mov eax, dword [edi + 4]
cmp byte [eax + 1], 0
jne 0x4b109d
mov eax, dword [ebx + 0xc]
test eax, eax
jne 0x4b1046
mov eax, 0x544688
jmp 0x4b1063
lea edx, [eax + eax*4]
mov eax, dword [ebx]
shl edx, 2
cmp byte [eax + 0x1e], 0
je 0x4b105b
mov eax, 0x544688
jmp 0x4b1063
mov eax, dword [ebx + 0x14]
add eax, 0xffffffec
add eax, edx
cmp byte [eax], 0xc
mov dword [esp + 0x1c], eax
jne 0x4b109d
mov edx, dword [eax + 0xc]
mov eax, dword [eax + 4]
add eax, edx
cdq
cmp eax, dword [edi + 0x20]
jne 0x4b109d
cmp edx, dword [edi + 0x24]
jne 0x4b109d
mov edx, dword [esp + 0x1c]
mov eax, dword [edx + 8]
add eax, dword [edx + 0xc]
cmp eax, ecx
jne 0x4b109d
cmp dword [edx + 0x10], 0
jne 0x4b109d
inc dword [edx + 0xc]
mov ebx, ecx
jmp 0x4b0ee8
mov eax, dword [edi + 0x20]
mov dword [esp + 0x18], eax
mov eax, dword [ebx + 0xc]
mov dword [esp + 0x10], eax
cmp dword [ebx + 0x10], eax
jg 0x4b10bf
mov ecx, ebx
call fcn.004a1610
test eax, eax
jne 0x4b10f6
mov eax, dword [esp + 0x10]
inc dword [ebx + 0xc]
lea ecx, [eax + eax*4]
mov eax, dword [ebx + 0x14]
mov edx, dword [esp + 0x18]
mov dword [eax + ecx*4 + 4], edx
mov edx, dword [ebp + 8]
mov word [eax + ecx*4], 0xc
mov byte [eax + ecx*4 + 3], 0
mov dword [eax + ecx*4 + 8], edx
mov dword [eax + ecx*4 + 0xc], 1
mov dword [eax + ecx*4 + 0x10], 0
mov byte [ebx + 0x6e], 0
mov edi, dword [edi + 4]
mov dword [esp + 0x18], edi
cmp byte [edi + 1], 0
je 0x4b0ee4
mov ecx, dword [ebx + 0x14]
mov eax, dword [ebx]
mov dword [esp + 0x30], ecx
test ecx, ecx
je 0x4b122c
cmp byte [eax + 0x1e], 0
jne 0x4b122c
mov eax, dword [ebx + 0xc]
dec eax
lea eax, [eax + eax*4]
push dword [ecx + eax*4 + 0x10]
movsx edx, byte [ecx + eax*4 + 1]
mov ecx, dword [ebx]
mov dword [esp + 0x2c], eax
call fcn.004a1910
mov eax, dword [esp + 0x34]
add esp, 4
mov ecx, dword [esp + 0x28]
mov dword [eax + ecx*4 + 0x10], 0
test edi, edi
jne 0x4b115e
mov byte [eax + ecx*4 + 1], 0
jmp 0x4b0ee4
mov eax, edi
cmp byte [eax], 0
je 0x4b116b
inc edi
cmp byte [edi], 0
jne 0x4b1165
mov ebx, dword [ebx]
sub edi, eax
and edi, 0x3fffffff
lea edx, [edi + 1]
test ebx, ebx
je 0x4b11e1
cmp byte [ebx + 0x1e], 0
je 0x4b119a
mov eax, dword [esp + 0x30]
xor ecx, ecx
mov edx, dword [esp + 0x28]
mov dword [eax + edx*4 + 0x10], ecx
mov byte [eax + edx*4 + 1], 0xff
jmp 0x4b0ee4
cmp byte [ebx + 0xe2], 0
je 0x4b11e1
movzx eax, word [ebx + 0xe0]
cmp edx, eax
ja 0x4b11e1
mov ecx, dword [ebx + 0xec]
mov dword [esp + 0x1c], ecx
test ecx, ecx
je 0x4b11e1
mov eax, dword [ecx]
mov dword [ebx + 0xec], eax
mov eax, dword [ebx + 0xe4]
inc eax
mov dword [ebx + 0xe4], eax
cmp eax, dword [ebx + 0xe8]
jle 0x4b1200
mov dword [ebx + 0xe8], eax
jmp 0x4b1200
push edx
call fcn.00491390
mov ecx, eax
mov dword [esp + 0x20], eax
add esp, 4
test ecx, ecx
jne 0x4b1200
test ebx, ebx
je 0x4b11fc
mov byte [ebx + 0x1e], 1
test ecx, ecx
je 0x4b1216
push edi
push dword [esp + 0x1c]
push ecx
call fcn.004e1370
mov ecx, dword [esp + 0x28]
add esp, 0xc
mov byte [ecx + edi], 0
mov eax, dword [esp + 0x30]
mov edx, dword [esp + 0x28]
mov dword [eax + edx*4 + 0x10], ecx
mov byte [eax + edx*4 + 1], 0xff
jmp 0x4b0ee4
push edi
xor edx, edx
mov ecx, eax
call fcn.004a1910
add esp, 4
jmp 0x4b0ee4
mov ebx, dword [edi + 0x18]
jmp 0x4b0ee8
mov edx, dword [edi + 8]
push ecx
mov ecx, esi
call fcn.004b0d20
add esp, 4
mov ebx, eax
jmp 0x4b0ee8
mov edx, dword [edi + 8]
push ecx
mov ecx, esi
call fcn.004b0d20
mov ecx, dword [edi + 4]
add esp, 4
mov dword [esp + 0x14], eax
call fcn.004b73d0
mov edi, dword [ebp + 8]
mov byte [esp + 0x23], al
cmp dword [esp + 0x14], edi
je 0x4b12db
mov ecx, dword [ebx + 0xc]
mov eax, ecx
mov dword [esp + 0x10], ecx
cmp dword [ebx + 0x10], ecx
jg 0x4b12a2
mov ecx, ebx
call fcn.004a1610
test eax, eax
jne 0x4b12d7
mov eax, dword [ebx + 0xc]
mov ecx, dword [esp + 0x10]
mov edx, dword [esp + 0x14]
lea ecx, [ecx + ecx*4]
inc eax
mov dword [ebx + 0xc], eax
mov eax, dword [ebx + 0x14]
mov word [eax + ecx*4], 0xf
mov byte [eax + ecx*4 + 3], 0
mov dword [eax + ecx*4 + 4], edx
mov dword [eax + ecx*4 + 8], edi
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov byte [ebx + 0x6e], 0
mov dword [esp + 0x14], edi
mov edi, dword [ebx + 0xc]
cmp dword [ebx + 0x10], edi
jg 0x4b12ee
mov ecx, ebx
call fcn.004a1610
test eax, eax
jne 0x4b132f
mov eax, dword [ebx + 0x14]
lea ecx, [edi + edi*4]
inc dword [ebx + 0xc]
mov dl, byte [esp + 0x23]
add dl, 0x2c
mov byte [eax + ecx*4], dl
mov edx, dword [esp + 0x14]
mov byte [eax + ecx*4 + 3], 0
mov dword [eax + ecx*4 + 4], edx
mov dword [eax + ecx*4 + 8], 0
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov byte [eax + ecx*4 + 1], 0
mov byte [ebx + 0x6e], 0
mov ebx, dword [esp + 0x14]
mov ecx, esi
push 1
mov edx, ebx
call fcn.004b0ac0
add esp, 4
jmp 0x4b0ee8
mov edx, dword [edi + 8]
mov ebx, dword [edi + 0xc]
cmp byte [edx], 0x9d
jne 0x4b1359
mov edx, dword [edx + 8]
cmp byte [edx], 0x9d
je 0x4b1351
mov eax, 0x200
mov ecx, esi
or word [edx + 2], ax
lea eax, [esp + 0x3c]
push eax
call fcn.004b2a00
add esp, 4
mov dword [esp + 0x10], eax
cmp byte [ebx], 0x9d
jne 0x4b1388
lea ebx, [ebx]
mov ebx, dword [ebx + 8]
cmp byte [ebx], 0x9d
je 0x4b1380
mov eax, 0x200
mov edx, ebx
or word [ebx + 2], ax
mov ecx, esi
lea eax, [esp + 0x40]
push eax
call fcn.004b2a00
mov edx, dword [esp + 0x30]
add esp, 4
push 0x10
push dword [ebp + 8]
push eax
push dword [esp + 0x1c]
push edx
push dword [edi + 0xc]
mov edx, dword [edi + 8]
mov ecx, esi
call fcn.004ad420
add esp, 0x18
jmp 0x4b0ee4
mov edx, dword [edi + 8]
mov ebx, dword [edi + 0xc]
cmp byte [edx], 0x9d
jne 0x4b13d9
mov edx, dword [edx + 8]
cmp byte [edx], 0x9d
je 0x4b13d1
mov eax, 0x200
mov ecx, esi
or word [edx + 2], ax
lea eax, [esp + 0x3c]
push eax
call fcn.004b2a00
add esp, 4
mov dword [esp + 0x10], eax
cmp byte [ebx], 0x9d
jne 0x4b1408
lea ebx, [ebx]
mov ebx, dword [ebx + 8]
cmp byte [ebx], 0x9d
je 0x4b1400
mov eax, 0x200
mov edx, ebx
or word [ebx + 2], ax
mov ecx, esi
lea eax, [esp + 0x40]
push eax
call fcn.004b2a00
add esp, 4
push 0x90
push dword [ebp + 8]
push eax
push dword [esp + 0x1c]
xor eax, eax
cmp dword [esp + 0x3c], 0x46
sete al
add eax, 0x4b
push eax
jmp 0x4b13b1
mov edx, dword [edi + 8]
lea eax, [esp + 0x3c]
push eax
mov ecx, esi
call fcn.004b2a00
mov edx, dword [edi + 0xc]
add esp, 4
mov dword [esp + 0x18], eax
mov ecx, esi
lea eax, [esp + 0x40]
push eax
call fcn.004b2a00
mov edi, dword [ebx + 0xc]
add esp, 4
mov dword [esp + 0x10], eax
cmp dword [ebx + 0x10], edi
jg 0x4b1485
mov ecx, ebx
call fcn.004a1610
test eax, eax
jne 0x4b0ee4
mov eax, dword [ebx + 0x14]
lea ecx, [edi + edi*4]
inc dword [ebx + 0xc]
mov edx, dword [esp + 0x2c]
mov byte [eax + ecx*4], dl
mov edx, dword [esp + 0x10]
mov dword [eax + ecx*4 + 4], edx
mov edx, dword [esp + 0x18]
mov dword [eax + ecx*4 + 8], edx
mov edx, dword [ebp + 8]
mov dword [eax + ecx*4 + 0xc], edx
mov byte [eax + ecx*4 + 3], 0
mov dword [eax + ecx*4 + 0x10], 0
mov byte [eax + ecx*4 + 1], 0
mov byte [ebx + 0x6e], 0
mov ebx, edx
jmp 0x4b0ee8
mov eax, dword [edi + 8]
lea edx, [edi + 8]
mov dword [esp + 0x18], edx
mov bl, byte [eax]
mov byte [esp + 0x23], bl
cmp bl, 0x82
mov ebx, dword [esp + 0x30]
jne 0x4b1582
mov eax, dword [eax + 4]
test eax, eax
je 0x4b157b
lea edx, [esp + 0x50]
mov ecx, eax
call fcn.004938a0
fld qword [esp + 0x50]
lea edx, [esp + 0x50]
fchs
mov ecx, ebx
fstp qword [esp + 0x50]
call fcn.004affb0
mov edi, dword [ebx + 0xc]
mov dword [esp + 0x10], eax
cmp dword [ebx + 0x10], edi
jg 0x4b152f
mov ecx, ebx
call fcn.004a1610
test eax, eax
je 0x4b152f
mov edi, 1
jmp 0x4b1566
mov eax, dword [ebx + 0x14]
lea ecx, [edi + edi*4]
inc dword [ebx + 0xc]
mov edx, dword [ebp + 8]
mov word [eax + ecx*4], 0x82
mov byte [eax + ecx*4 + 3], 0
mov dword [eax + ecx*4 + 4], 0
mov dword [eax + ecx*4 + 8], edx
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov byte [ebx + 0x6e], 0
push 0xfffffffffffffff4
push dword [esp + 0x14]
mov edx, edi
mov ecx, ebx
call fcn.004a1c70
add esp, 8
mov ecx, dword [ebp + 8]
mov ebx, ecx
jmp 0x4b0ee8
cmp byte [esp + 0x23], 0x81
jne 0x4b15a2
push ecx
push 1
mov edx, eax
mov ecx, ebx
call fcn.004b0110
mov ecx, dword [ebp + 8]
add esp, 8
mov ebx, ecx
jmp 0x4b0ee8
mov al, byte [esi + 0x15]
test al, al
jne 0x4b15b1
inc dword [esi + 0x48]
mov eax, dword [esi + 0x48]
jmp 0x4b15bd
dec al
mov byte [esi + 0x15], al
movzx eax, al
mov eax, dword [esi + eax*4 + 0x18]
mov ecx, dword [ebx + 0xc]
mov dword [esp + 0x1c], eax
mov dword [esp + 0x3c], eax
mov eax, ecx
mov dword [esp + 0x10], ecx
cmp dword [ebx + 0x10], ecx
jg 0x4b15e8
mov ecx, ebx
call fcn.004a1610
test eax, eax
jne 0x4b1623
mov eax, dword [ebx + 0xc]
lea edx, [edi + 8]
mov ecx, dword [esp + 0x10]
mov edi, dword [esp + 0x1c]
lea ecx, [ecx + ecx*4]
inc eax
mov dword [ebx + 0xc], eax
mov eax, dword [ebx + 0x14]
mov word [eax + ecx*4], 7
mov byte [eax + ecx*4 + 3], 0
mov dword [eax + ecx*4 + 4], 0
mov dword [eax + ecx*4 + 8], edi
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov byte [ebx + 0x6e], 0
jmp 0x4b162b
mov edx, dword [esp + 0x18]
mov edi, dword [esp + 0x1c]
mov edx, dword [edx]
lea eax, [esp + 0x40]
push eax
mov ecx, esi
call fcn.004b2a00
mov ecx, dword [ebx + 0xc]
add esp, 4
mov dword [esp + 0x18], eax
mov dword [esp + 0x10], ecx
cmp dword [ebx + 0x10], ecx
jg 0x4b165f
mov ecx, ebx
call fcn.004a1610
test eax, eax
jne 0x4b1578
mov ecx, dword [esp + 0x10]
mov eax, dword [ebx + 0x14]
lea ecx, [ecx + ecx*4]
inc dword [ebx + 0xc]
mov edx, dword [esp + 0x18]
mov dword [eax + ecx*4 + 4], edx
mov edx, dword [ebp + 8]
mov word [eax + ecx*4], 0x57
mov byte [eax + ecx*4 + 3], 0
mov dword [eax + ecx*4 + 8], edi
mov dword [eax + ecx*4 + 0xc], edx
mov dword [eax + ecx*4 + 0x10], 0
mov ecx, edx
mov byte [ebx + 0x6e], 0
mov ebx, ecx
jmp 0x4b0ee8
mov edx, dword [edi + 8]
lea eax, [esp + 0x3c]
mov dword [esp + 0x14], ecx
mov ecx, esi
push eax
call fcn.004b2a00
mov edi, dword [ebx + 0xc]
add esp, 4
mov dword [esp + 0x10], eax
cmp dword [ebx + 0x10], edi
jg 0x4b16cc
mov ecx, ebx
call fcn.004a1610
test eax, eax
jne 0x4b0ee4
mov eax, dword [ebx + 0x14]
lea ecx, [edi + edi*4]
inc dword [ebx + 0xc]
mov edx, dword [esp + 0x2c]
mov byte [eax + ecx*4], dl
mov edx, dword [esp + 0x10]
mov dword [eax + ecx*4 + 4], edx
mov edx, dword [ebp + 8]
mov dword [eax + ecx*4 + 8], edx
mov dword [eax + ecx*4 + 0xc], 0
jmp 0x4b14ac
mov ecx, dword [ebx + 0xc]
mov eax, ecx
mov dword [esp + 0x10], ecx
cmp dword [ebx + 0x10], ecx
jg 0x4b1718
mov ecx, ebx
call fcn.004a1610
test eax, eax
jne 0x4b1750
mov eax, dword [ebx + 0xc]
mov ecx, dword [esp + 0x10]
mov edx, dword [ebp + 8]
lea ecx, [ecx + ecx*4]
inc eax
mov dword [ebx + 0xc], eax
mov eax, dword [ebx + 0x14]
mov word [eax + ecx*4], 7
mov byte [eax + ecx*4 + 3], 0
mov dword [eax + ecx*4 + 4], 1
mov dword [eax + ecx*4 + 8], edx
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov byte [ebx + 0x6e], 0
mov edx, dword [edi + 8]
lea eax, [esp + 0x3c]
push eax
mov ecx, esi
call fcn.004b2a00
mov edi, dword [ebx + 0xc]
add esp, 4
mov dword [esp + 0x10], eax
cmp dword [ebx + 0x10], edi
jg 0x4b1780
mov ecx, ebx
call fcn.004a1610
test eax, eax
je 0x4b1780
mov edi, 1
jmp 0x4b17be
mov eax, dword [ebx + 0x14]
lea ecx, [edi + edi*4]
inc dword [ebx + 0xc]
mov edx, dword [esp + 0x2c]
mov byte [eax + ecx*4], dl
mov edx, dword [esp + 0x10]
mov byte [eax + ecx*4 + 3], 0
mov dword [eax + ecx*4 + 4], edx
mov dword [eax + ecx*4 + 8], 0
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov byte [eax + ecx*4 + 1], 0
mov byte [ebx + 0x6e], 0
mov ecx, dword [ebx + 0xc]
mov dword [esp + 0x10], ecx
cmp dword [ebx + 0x10], ecx
jg 0x4b17d9
mov ecx, ebx
call fcn.004a1610
test eax, eax
jne 0x4b1810
mov ecx, dword [esp + 0x10]
mov eax, dword [ebx + 0x14]
lea ecx, [ecx + ecx*4]
inc dword [ebx + 0xc]
mov edx, dword [ebp + 8]
mov word [eax + ecx*4], 0x14
mov byte [eax + ecx*4 + 3], 0
mov dword [eax + ecx*4 + 4], edx
mov dword [eax + ecx*4 + 8], 0xffffffff
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov byte [ebx + 0x6e], 0
mov edx, dword [ebx + 0xc]
cmp edx, edi
jle 0x4b0ee4
mov eax, dword [ebx + 0x14]
lea ecx, [edi + edi*4]
mov dword [eax + ecx*4 + 8], edx
jmp 0x4b0ee4
mov eax, dword [edi + 0x30]
test eax, eax
jne 0x4b1847
push dword [edi + 4]
push str.misuse_of_aggregate:__s__
push esi
call fcn.004936e0
add esp, 0xc
jmp 0x4b0ee4
movsx ecx, word [edi + 0x28]
mov eax, dword [eax + 0x20]
add ecx, ecx
mov ebx, dword [eax + ecx*8 + 8]
jmp 0x4b0ee8
mov eax, dword [edx + 8]
mov dword [esp + 0x18], 0
mov dword [esp + 0x34], 0
mov eax, dword [eax + 0xc]
mov al, byte [eax + 0x49]
mov byte [esp + 0x10], al
mov eax, 0x4000
test word [edi + 2], ax
je 0x4b189e
mov dword [esp + 0x44], 0
xor ecx, ecx
mov edx, dword [edi + 4]
mov eax, edx
mov dword [esp + 0x2c], ecx
mov dword [esp + 0x24], edx
test edx, edx
jne 0x4b18ad
jmp 0x4b18bf
mov eax, dword [edi + 0x10]
mov dword [esp + 0x44], eax
test eax, eax
je 0x4b1889
mov ecx, dword [eax]
jmp 0x4b188b
cmp byte [edx], 0
je 0x4b18b8
inc eax
cmp byte [eax], 0
jne 0x4b18b2
sub eax, edx
and eax, 0x3fffffff
push 0
push dword [esp + 0x14]
mov dword [esp + 0x40], eax
push ecx
mov ecx, dword [esp + 0x28]
push eax
call fcn.004bb2f0
mov edx, eax
add esp, 0x10
mov dword [esp + 0x28], edx
test edx, edx
jne 0x4b18fc
push dword [esp + 0x24]
push dword [esp + 0x3c]
push str.unknown_function:__.s__
push esi
call fcn.004936e0
add esp, 0x10
jmp 0x4b0ee4
mov ecx, dword [esp + 0x44]
test ecx, ecx
je 0x4b198a
mov ecx, dword [esp + 0x2c]
mov eax, dword [esi + 0x3c]
mov dword [esp + 0x38], eax
cmp ecx, dword [esi + 0x38]
jg 0x4b1956
xor eax, eax
lea edx, [esi + 0x70]
mov dword [esp + 0x10], eax
mov ebx, dword [esp + 0x38]
cmp dword [edx], ebx
mov ebx, dword [esp + 0x30]
jl 0x4b193d
mov eax, dword [esp + 0x38]
dec eax
add eax, dword [esi + 0x38]
cmp dword [edx], eax
jle 0x4b1956
mov eax, dword [esp + 0x10]
inc eax
add edx, 0x18
mov dword [esp + 0x10], eax
cmp eax, 0xa
jl 0x4b1921
add dword [esi + 0x3c], ecx
sub dword [esi + 0x38], ecx
mov edx, dword [esp + 0x38]
jmp 0x4b1965
mov eax, dword [esi + 0x48]
lea edx, [eax + 1]
add eax, ecx
mov dword [esp + 0x38], edx
mov dword [esi + 0x48], eax
inc dword [esi + 0x54]
mov ecx, esi
push 1
push edx
mov edx, dword [esp + 0x4c]
call fcn.004b2cf0
add esp, 8
mov ecx, esi
call fcn.004b0680
mov ecx, dword [esp + 0x44]
mov edx, dword [esp + 0x28]
jmp 0x4b1992
mov dword [esp + 0x38], 0
mov eax, dword [esp + 0x2c]
cmp eax, 2
jl 0x4b19b9
test byte [edi + 2], 0x80
je 0x4b19c1
mov esi, dword [esp + 0x1c]
mov dword [esp + 0x10], eax
mov eax, dword [ecx + 0xc]
mov dword [esp + 0x28], esi
mov esi, dword [esp + 0x4c]
mov eax, dword [eax + 0x14]
jmp 0x4b19d2
test eax, eax
jle 0x4b1a66
mov ebx, dword [esp + 0x1c]
mov dword [esp + 0x10], eax
mov eax, dword [ecx + 0xc]
mov dword [esp + 0x28], ebx
mov eax, dword [eax]
mov ecx, dword [esp + 0x28]
xor edi, edi
push eax
push dword [esp + 0x14]
call fcn.004d2540
add esp, 8
mov dword [esp + 0x28], eax
xor ebx, ebx
jmp 0x4b19f0
cmp edi, 0x20
jge 0x4b1a32
mov eax, dword [esp + 0x44]
lea ecx, [esp + 0x50]
mov dword [esp + 0x5c], 1
mov dword [esp + 0x50], 0x4aef20
mov dword [esp + 0x54], 0x4af000
mov edx, dword [eax + 0xc]
mov edx, dword [edx + ebx]
call fcn.004ab750
cmp dword [esp + 0x5c], 0
je 0x4b1a32
mov eax, dword [esp + 0x18]
bts eax, edi
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x28]
test byte [eax + 3], 8
je 0x4b1a58
cmp dword [esp + 0x34], 0
jne 0x4b1a58
mov eax, dword [esp + 0x44]
mov ecx, esi
mov edx, dword [eax + 0xc]
mov edx, dword [edx + ebx]
call fcn.004ad2c0
mov dword [esp + 0x34], eax
inc edi
add ebx, 0x14
cmp edi, dword [esp + 0x2c]
jl 0x4b19f0
mov ebx, dword [esp + 0x30]
mov eax, dword [esp + 0x28]
test byte [eax + 3], 8
je 0x4b1af0
cmp dword [esp + 0x34], 0
jne 0x4b1a86
mov eax, dword [esp + 0x1c]
mov eax, dword [eax + 0x2c]
mov dword [esp + 0x34], eax
mov edi, dword [ebx + 0xc]
mov eax, edi
cmp dword [ebx + 0x10], edi
jg 0x4b1aa5
mov ecx, ebx
call fcn.004a1610
test eax, eax
je 0x4b1aa2
mov edi, 1
jmp 0x4b1ade
mov eax, dword [ebx + 0xc]
inc eax
lea ecx, [edi + edi*4]
mov dword [ebx + 0xc], eax
mov eax, dword [ebx + 0x14]
mov word [eax + ecx*4], 0x11
mov byte [eax + ecx*4 + 3], 0
mov dword [eax + ecx*4 + 4], 0
mov dword [eax + ecx*4 + 8], 0
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov byte [ebx + 0x6e], 0
push 0xfffffffffffffffc
push dword [esp + 0x38]
mov edx, edi
mov ecx, ebx
call fcn.004a1c70
add esp, 8
mov edi, dword [ebx + 0xc]
cmp dword [ebx + 0x10], edi
jg 0x4b1b0a
mov ecx, ebx
call fcn.004a1610
test eax, eax
je 0x4b1b0a
mov edi, 1
jmp 0x4b1b41
mov eax, dword [ebx + 0x14]
lea ecx, [edi + edi*4]
inc dword [ebx + 0xc]
mov edx, dword [esp + 0x18]
mov dword [eax + ecx*4 + 4], edx
mov edx, dword [esp + 0x38]
mov dword [eax + ecx*4 + 8], edx
mov edx, dword [ebp + 8]
mov word [eax + ecx*4], 0x12
mov byte [eax + ecx*4 + 3], 0
mov dword [eax + ecx*4 + 0xc], edx
mov dword [eax + ecx*4 + 0x10], 0
mov byte [ebx + 0x6e], 0
push 0xfffffffffffffffb
push dword [esp + 0x2c]
mov edx, edi
mov ecx, ebx
call fcn.004a1c70
mov edx, dword [ebx + 0x14]
add esp, 8
test edx, edx
je 0x4b1b68
mov eax, dword [ebx + 0xc]
mov ecx, dword [esp + 0x2c]
lea eax, [eax + eax*4]
mov byte [edx + eax*4 - 0x11], cl
mov eax, dword [esp + 0x2c]
test eax, eax
je 0x4b1b7f
cmp eax, dword [esi + 0x38]
jle 0x4b1b7f
mov ecx, dword [esp + 0x38]
mov dword [esi + 0x38], eax
mov dword [esi + 0x3c], ecx
mov edx, dword [esp + 0x38]
mov ecx, esi
push eax
call fcn.004b0ac0
add esp, 4
jmp 0x4b0ee4
push 0
push 0
mov edx, edi
mov ecx, esi
call fcn.004af730
add esp, 8
mov ebx, eax
jmp 0x4b0ee8
lea eax, [esp + 0x28]
mov dword [esp + 0x34], 0
push eax
mov edx, edi
mov dword [esp + 0x2c], 0
mov ecx, esi
call fcn.004af1b0
add esp, 4
mov dword [esp + 0x1c], eax
cmp dword [esp + 0x28], 0
je 0x4b1be0
inc dword [esi + 0x48]
mov eax, dword [esi + 0x48]
mov dword [esp + 0x34], eax
mov ecx, dword [edi + 8]
call fcn.004ad0a0
mov ecx, dword [edi + 0xc]
mov byte [esp + 0x23], al
test ecx, ecx
je 0x4b1c13
call fcn.004ad0a0
mov cl, al
mov al, byte [esp + 0x23]
test cl, cl
je 0x4b1c48
test al, al
je 0x4b1c4c
cmp cl, 0x63
jge 0x4b1c0f
cmp al, 0x63
jl 0x4b1c54
mov al, 0x63
jmp 0x4b1c56
mov ecx, 0x1000
test word [edi + 2], cx
je 0x4b1c50
mov eax, dword [edi + 0x10]
mov eax, dword [eax]
mov ecx, dword [eax + 0xc]
mov ecx, dword [ecx]
call fcn.004ad0a0
mov cl, al
mov al, byte [esp + 0x23]
test cl, cl
je 0x4b1c48
test al, al
je 0x4b1c4c
cmp cl, 0x63
jge 0x4b1c0f
cmp al, 0x63
jl 0x4b1c54
mov al, 0x63
jmp 0x4b1c56
test al, al
je 0x4b1c54
add al, cl
jmp 0x4b1c56
test al, al
jne 0x4b1c56
mov al, 0x62
inc dword [esi + 0x54]
mov ecx, esi
push dword [ebp + 8]
mov edx, dword [edi + 8]
mov byte [esp + 0x4f], al
call fcn.004b0d20
add esp, 4
mov dword [esp + 0x18], eax
cmp eax, dword [ebp + 8]
je 0x4b1cdb
mov eax, dword [esi + 0xc]
mov dword [esp + 0x10], eax
test eax, eax
je 0x4b1cdb
mov ecx, dword [eax + 0xc]
mov dword [esp + 0x24], ecx
cmp dword [eax + 0x10], ecx
jg 0x4b1ca0
mov ecx, eax
call fcn.004a1610
test eax, eax
jne 0x4b1cdb
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x24]
inc dword [eax + 0xc]
lea ecx, [ecx + ecx*4]
mov eax, dword [eax + 0x14]
mov edx, dword [esp + 0x18]
mov dword [eax + ecx*4 + 4], edx
mov edx, dword [ebp + 8]
mov word [eax + ecx*4], 0xf
mov byte [eax + ecx*4 + 3], 0
mov dword [eax + ecx*4 + 8], edx
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov eax, dword [esp + 0x10]
mov byte [eax + 0x6e], 0
mov ecx, dword [ebx + 0xc]
mov eax, ecx
mov dword [esp + 0x2c], ecx
cmp dword [ebx + 0x10], ecx
jg 0x4b1d05
mov ecx, ebx
call fcn.004a1610
test eax, eax
je 0x4b1cfe
mov dword [esp + 0x2c], 1
jmp 0x4b1d3d
mov eax, dword [ebx + 0xc]
mov ecx, dword [esp + 0x2c]
mov edx, dword [ebp + 8]
lea ecx, [ecx + ecx*4]
inc eax
mov dword [ebx + 0xc], eax
mov eax, dword [ebx + 0x14]
mov word [eax + ecx*4], 0x49
mov byte [eax + ecx*4 + 3], 0
mov dword [eax + ecx*4 + 4], edx
mov dword [eax + ecx*4 + 8], 0
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov byte [ebx + 0x6e], 0
cmp dword [esp + 0x1c], 1
jne 0x4b1ecb
mov ecx, dword [ebx + 0xc]
mov dword [esp + 0x18], ecx
cmp dword [ebx + 0x10], ecx
jg 0x4b1d6d
mov ecx, ebx
call fcn.004a1610
test eax, eax
je 0x4b1d69
mov dword [esp + 0x18], 1
jmp 0x4b1da4
mov ecx, dword [esp + 0x18]
mov eax, dword [ebx + 0x14]
lea ecx, [ecx + ecx*4]
inc dword [ebx + 0xc]
mov edx, dword [ebp + 8]
mov word [eax + ecx*4], 0x15
mov byte [eax + ecx*4 + 3], 0
mov dword [eax + ecx*4 + 4], edx
mov dword [eax + ecx*4 + 8], 0
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov byte [ebx + 0x6e], 0
mov edx, dword [ebx + 0xc]
mov edi, dword [edi + 0x18]
mov dword [esp + 0x1c], edx
cmp dword [ebx + 0x10], edx
jg 0x4b1dcf
mov ecx, ebx
call fcn.004a1610
test eax, eax
je 0x4b1dcb
mov edi, dword [ebp + 8]
mov dword [esp + 0x1c], 1
jmp 0x4b1e02
mov edx, dword [esp + 0x1c]
mov eax, dword [ebx + 0x14]
lea ecx, [edx + edx*4]
inc dword [ebx + 0xc]
mov dword [eax + ecx*4 + 4], edi
mov edi, dword [ebp + 8]
mov word [eax + ecx*4], 0x33
mov byte [eax + ecx*4 + 3], 0
mov dword [eax + ecx*4 + 8], 0
mov dword [eax + ecx*4 + 0xc], edi
mov dword [eax + ecx*4 + 0x10], 0
mov byte [ebx + 0x6e], 0
mov ecx, dword [ebx + 0xc]
mov dword [esp + 0x24], ecx
cmp dword [ebx + 0x10], ecx
jg 0x4b1e1d
mov ecx, ebx
call fcn.004a1610
test eax, eax
jne 0x4b1e51
mov ecx, dword [esp + 0x24]
mov eax, dword [ebx + 0x14]
lea ecx, [ecx + ecx*4]
inc dword [ebx + 0xc]
mov word [eax + ecx*4], 7
mov byte [eax + ecx*4 + 3], 0
mov dword [eax + ecx*4 + 4], 1
mov dword [eax + ecx*4 + 8], edi
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov byte [ebx + 0x6e], 0
mov edx, 1
mov ecx, ebx
call fcn.004a1690
mov dword [esp + 0x30], eax
mov eax, dword [esp + 0x18]
cmp dword [ebx + 0xc], eax
jle 0x4b1e77
mov ecx, dword [ebx + 0x14]
lea edx, [eax + eax*4]
mov eax, dword [ebx + 0xc]
mov dword [ecx + edx*4 + 8], eax
mov edx, dword [ebx + 0xc]
mov eax, dword [esp + 0x1c]
cmp edx, eax
jle 0x4b1e8c
lea ecx, [eax + eax*4]
mov eax, dword [ebx + 0x14]
mov dword [eax + ecx*4 + 8], edx
mov ecx, dword [ebx + 0xc]
mov dword [esp + 0x24], ecx
cmp dword [ebx + 0x10], ecx
jg 0x4b1eab
mov ecx, ebx
call fcn.004a1610
test eax, eax
jne 0x4b2289
mov ecx, dword [esp + 0x24]
mov eax, dword [ebx + 0x14]
lea ecx, [ecx + ecx*4]
inc dword [ebx + 0xc]
mov word [eax + ecx*4], 7
mov dword [eax + ecx*4 + 4], 0
mov dword [eax + ecx*4 + 8], edi
jmp 0x4b2270
mov al, byte [esi + 0x15]
test al, al
jne 0x4b1eda
inc dword [esi + 0x48]
mov eax, dword [esi + 0x48]
jmp 0x4b1ee6
dec al
mov byte [esi + 0x15], al
movzx eax, al
mov eax, dword [esi + eax*4 + 0x18]
mov ecx, dword [ebx + 0xc]
mov dword [esp + 0x18], eax
mov dword [esp + 0x40], eax
mov dword [esp + 0x10], ecx
cmp dword [ebx + 0x10], ecx
jg 0x4b1f10
mov ecx, ebx
call fcn.004a1610
test eax, eax
je 0x4b1f0c
mov edx, 1
jmp 0x4b1f4b
mov ecx, dword [esp + 0x10]
mov eax, dword [ebx + 0x14]
lea ecx, [ecx + ecx*4]
inc dword [ebx + 0xc]
mov edx, dword [ebp + 8]
mov dword [eax + ecx*4 + 4], edx
mov edx, dword [esp + 0x18]
mov dword [eax + ecx*4 + 0xc], edx
mov edx, dword [esp + 0x10]
mov word [eax + ecx*4], 0x1e
mov byte [eax + ecx*4 + 3], 0
mov dword [eax + ecx*4 + 8], 1
mov dword [eax + ecx*4 + 0x10], 0
mov byte [ebx + 0x6e], 0
lea eax, [esp + 0x4b]
mov ecx, ebx
push 1
push eax
call fcn.004a1c70
mov ecx, dword [ebx + 0xc]
add esp, 8
mov dword [esp + 0x24], ecx
cmp dword [ebx + 0x10], ecx
jg 0x4b1f77
mov ecx, ebx
call fcn.004a1610
test eax, eax
jne 0x4b1fae
mov ecx, dword [esp + 0x24]
mov eax, dword [ebx + 0x14]
lea ecx, [ecx + ecx*4]
inc dword [ebx + 0xc]
mov edx, dword [ebp + 8]
mov word [eax + ecx*4], 7
mov byte [eax + ecx*4 + 3], 0
mov dword [eax + ecx*4 + 4], 1
mov dword [eax + ecx*4 + 8], edx
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov byte [ebx + 0x6e], 0
mov ecx, dword [ebx + 0xc]
mov eax, dword [edi + 0x18]
mov dword [esp + 0x24], eax
mov dword [esp + 0x30], ecx
cmp dword [ebx + 0x10], ecx
jg 0x4b1fda
mov ecx, ebx
call fcn.004a1610
test eax, eax
je 0x4b1fd6
mov dword [esp + 0x30], 1
jmp 0x4b2012
mov ecx, dword [esp + 0x30]
mov eax, dword [ebx + 0x14]
lea ecx, [ecx + ecx*4]
inc dword [ebx + 0xc]
mov edx, dword [esp + 0x24]
mov dword [eax + ecx*4 + 4], edx
mov edx, dword [esp + 0x18]
mov word [eax + ecx*4], 0x31
mov byte [eax + ecx*4 + 3], 0
mov dword [eax + ecx*4 + 8], 0
mov dword [eax + ecx*4 + 0xc], edx
mov dword [eax + ecx*4 + 0x10], 0
mov byte [ebx + 0x6e], 0
cmp dword [esp + 0x34], 0
mov edx, dword [ebx + 0xc]
mov eax, dword [ebx + 0x10]
mov dword [esp + 0x1c], edx
jne 0x4b2056
cmp eax, edx
jg 0x4b203a
mov ecx, ebx
call fcn.004a1610
test eax, eax
jne 0x4b2289
mov edx, dword [esp + 0x1c]
mov eax, dword [ebx + 0x14]
lea ecx, [edx + edx*4]
inc dword [ebx + 0xc]
mov word [eax + ecx*4], 7
mov dword [eax + ecx*4 + 4], 0
jmp 0x4b2269
cmp eax, edx
jg 0x4b2073
mov ecx, ebx
call fcn.004a1610
test eax, eax
je 0x4b206f
mov dword [esp + 0x1c], 1
jmp 0x4b20ab
mov edx, dword [esp + 0x1c]
mov eax, dword [ebx + 0x14]
lea ecx, [edx + edx*4]
inc dword [ebx + 0xc]
mov edx, dword [esp + 0x28]
mov word [eax + ecx*4], 0x4a
mov byte [eax + ecx*4 + 3], 0
mov dword [eax + ecx*4 + 4], edx
mov dword [eax + ecx*4 + 8], 0
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov byte [ebx + 0x6e], 0
mov ecx, dword [ebx + 0xc]
mov dword [esp + 0x24], ecx
cmp dword [ebx + 0x10], ecx
jg 0x4b20c6
mov ecx, ebx
call fcn.004a1610
test eax, eax
jne 0x4b20fe
mov ecx, dword [esp + 0x24]
mov eax, dword [ebx + 0x14]
lea ecx, [ecx + ecx*4]
inc dword [ebx + 0xc]
mov edx, dword [esp + 0x34]
mov word [eax + ecx*4], 0xa
mov byte [eax + ecx*4 + 3], 0
mov dword [eax + ecx*4 + 4], 0
mov dword [eax + ecx*4 + 8], edx
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov byte [ebx + 0x6e], 0
mov edx, dword [ebx + 0xc]
mov dword [esp + 0x24], edx
cmp dword [ebx + 0x10], edx
jg 0x4b2120
mov ecx, ebx
call fcn.004a1610
test eax, eax
je 0x4b211c
mov edx, 1
jmp 0x4b215c
mov edx, dword [esp + 0x24]
mov eax, dword [ebx + 0x14]
lea ecx, [edx + edx*4]
inc dword [ebx + 0xc]
mov esi, dword [esp + 0x28]
mov dword [eax + ecx*4 + 8], esi
mov esi, dword [esp + 0x4c]
mov word [eax + ecx*4], 0xb
mov byte [eax + ecx*4 + 3], 0
mov dword [eax + ecx*4 + 4], 2
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov byte [ebx + 0x6e], 0
push 0xfffffffffffffffe
push 0x52155c
mov ecx, ebx
call fcn.004a1c70
mov eax, dword [edi + 0x18]
add esp, 8
mov edi, dword [ebx + 0xc]
mov dword [esp + 0x24], eax
cmp dword [ebx + 0x10], edi
jg 0x4b218e
mov ecx, ebx
call fcn.004a1610
test eax, eax
je 0x4b218e
mov edi, 1
jmp 0x4b21c6
mov eax, dword [ebx + 0x14]
lea ecx, [edi + edi*4]
inc dword [ebx + 0xc]
mov edx, dword [esp + 0x24]
mov dword [eax + ecx*4 + 4], edx
mov edx, dword [esp + 0x28]
mov word [eax + ecx*4], 0x31
mov byte [eax + ecx*4 + 3], 0
mov dword [eax + ecx*4 + 8], 0
mov dword [eax + ecx*4 + 0xc], edx
mov dword [eax + ecx*4 + 0x10], 0
mov byte [ebx + 0x6e], 0
mov ecx, dword [ebx + 0xc]
mov dword [esp + 0x24], ecx
cmp dword [ebx + 0x10], ecx
jg 0x4b21e1
mov ecx, ebx
call fcn.004a1610
test eax, eax
jne 0x4b2219
mov ecx, dword [esp + 0x24]
mov eax, dword [ebx + 0x14]
lea ecx, [ecx + ecx*4]
inc dword [ebx + 0xc]
mov edx, dword [esp + 0x34]
mov word [eax + ecx*4], 7
mov byte [eax + ecx*4 + 3], 0
mov dword [eax + ecx*4 + 4], 0
mov dword [eax + ecx*4 + 8], edx
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov byte [ebx + 0x6e], 0
mov edx, dword [ebx + 0xc]
cmp edx, edi
jle 0x4b222a
mov eax, dword [ebx + 0x14]
lea ecx, [edi + edi*4]
mov dword [eax + ecx*4 + 8], edx
mov edx, dword [ebx + 0xc]
mov eax, dword [esp + 0x1c]
cmp edx, eax
jle 0x4b223f
lea ecx, [eax + eax*4]
mov eax, dword [ebx + 0x14]
mov dword [eax + ecx*4 + 8], edx
mov edi, dword [ebx + 0xc]
cmp dword [ebx + 0x10], edi
jg 0x4b2252
mov ecx, ebx
call fcn.004a1610
test eax, eax
jne 0x4b2289
mov eax, dword [ebx + 0x14]
lea ecx, [edi + edi*4]
inc dword [ebx + 0xc]
mov edx, dword [esp + 0x34]
mov word [eax + ecx*4], 0xe
mov dword [eax + ecx*4 + 4], edx
mov edx, dword [ebp + 8]
mov dword [eax + ecx*4 + 8], edx
mov byte [eax + ecx*4 + 3], 0
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov byte [ebx + 0x6e], 0
mov edx, dword [ebx + 0xc]
mov eax, dword [esp + 0x2c]
cmp edx, eax
jle 0x4b229e
lea ecx, [eax + eax*4]
mov eax, dword [ebx + 0x14]
mov dword [eax + ecx*4 + 8], edx
mov edx, dword [ebx + 0xc]
mov eax, dword [esp + 0x30]
cmp edx, eax
jle 0x4b22b3
lea ecx, [eax + eax*4]
mov eax, dword [ebx + 0x14]
mov dword [eax + ecx*4 + 8], edx
mov ecx, esi
call fcn.004b0680
jmp 0x4b0ee4
mov eax, dword [edi + 0x10]
mov ecx, dword [edi + 8]
mov edx, ecx
mov dword [esp + 0x30], ecx
mov eax, dword [eax + 0xc]
cmp byte [ecx], 0x9d
mov dword [esp + 0x24], eax
mov eax, dword [eax]
mov edi, eax
mov dword [esp + 0x10], eax
jne 0x4b22e8
nop
mov edx, dword [edx + 8]
cmp byte [edx], 0x9d
je 0x4b22e0
mov eax, 0x200
mov ecx, esi
or word [edx + 2], ax
lea eax, [esp + 0x3c]
push eax
call fcn.004b2a00
mov ecx, edi
mov dword [esp + 0x1c], eax
add esp, 4
cmp byte [ecx], 0x9d
jne 0x4b2318
jmp 0x4b2310
mov edi, dword [edi + 8]
cmp byte [edi], 0x9d
je 0x4b2310
mov eax, 0x200
mov edx, edi
or word [edi + 2], ax
mov ecx, esi
lea eax, [esp + 0x40]
push eax
call fcn.004b2a00
mov cl, byte [esi + 0x15]
add esp, 4
mov edx, eax
test cl, cl
jne 0x4b234a
mov edi, dword [esi + 0x48]
lea eax, [esi + 0x48]
inc edi
mov dword [eax], edi
inc dword [eax]
mov eax, dword [eax]
jmp 0x4b236e
sub cl, 1
movzx eax, cl
mov byte [esi + 0x15], cl
mov edi, dword [esi + eax*4 + 0x18]
lea eax, [esi + 0x48]
jne 0x4b2362
inc dword [eax]
mov eax, dword [eax]
jmp 0x4b236e
dec cl
movzx eax, cl
mov byte [esi + 0x15], cl
mov eax, dword [esi + eax*4 + 0x18]
push 0x10
push edi
push edx
push dword [esp + 0x24]
mov edx, dword [esp + 0x40]
mov ecx, esi
push 0x50
push dword [esp + 0x24]
mov dword [esp + 0x34], eax
call fcn.004ad420
mov eax, dword [esp + 0x3c]
add esp, 0x18
mov edx, dword [eax + 0x14]
mov dword [esp + 0x10], edx
mov edx, dword [esp + 0x40]
test edx, edx
je 0x4b23cf
cmp byte [esi + 0x15], 8
jae 0x4b23cf
xor ecx, ecx
lea eax, [esi + 0x60]
lea esp, [esp]
cmp dword [eax + 0x10], edx
je 0x4b23cb
inc ecx
add eax, 0x18
cmp ecx, 0xa
jl 0x4b23b0
movzx eax, byte [esi + 0x15]
mov dword [esi + eax*4 + 0x18], edx
inc byte [esi + 0x15]
jmp 0x4b23cf
mov byte [eax + 9], 1
mov edx, dword [esp + 0x10]
lea eax, [esp + 0x40]
push eax
mov ecx, esi
call fcn.004b2a00
mov edx, dword [esp + 0x34]
add esp, 4
mov ecx, esi
push 0x10
push dword [esp + 0x20]
push eax
push dword [esp + 0x24]
push 0x4e
push dword [esp + 0x24]
call fcn.004ad420
mov eax, dword [ebx + 0xc]
add esp, 0x18
mov dword [esp + 0x24], eax
cmp dword [ebx + 0x10], eax
jg 0x4b241c
mov ecx, ebx
call fcn.004a1610
test eax, eax
jne 0x4b244f
mov eax, dword [esp + 0x24]
inc dword [ebx + 0xc]
lea ecx, [eax + eax*4]
mov eax, dword [ebx + 0x14]
mov edx, dword [esp + 0x1c]
mov dword [eax + ecx*4 + 8], edx
mov edx, dword [ebp + 8]
mov word [eax + ecx*4], 0x45
mov byte [eax + ecx*4 + 3], 0
mov dword [eax + ecx*4 + 4], edi
mov dword [eax + ecx*4 + 0xc], edx
mov dword [eax + ecx*4 + 0x10], 0
mov byte [ebx + 0x6e], 0
test edi, edi
je 0x4b247f
cmp byte [esi + 0x15], 8
jae 0x4b247f
xor ecx, ecx
lea eax, [esi + 0x60]
mov edi, edi
cmp dword [eax + 0x10], edi
je 0x4b247b
inc ecx
add eax, 0x18
cmp ecx, 0xa
jl 0x4b2460
movzx eax, byte [esi + 0x15]
mov dword [esi + eax*4 + 0x18], edi
inc byte [esi + 0x15]
jmp 0x4b247f
mov byte [eax + 9], 1
mov edx, dword [esp + 0x1c]
test edx, edx
je 0x4b0ee4
cmp byte [esi + 0x15], 8
jae 0x4b0ee4
xor ecx, ecx
lea eax, [esi + 0x60]
lea ebx, [ebx]
cmp dword [eax + 0x10], edx
je 0x4b24be
inc ecx
add eax, 0x18
cmp ecx, 0xa
jl 0x4b24a0
movzx eax, byte [esi + 0x15]
mov dword [esi + eax*4 + 0x18], edx
inc byte [esi + 0x15]
jmp 0x4b0ee4
mov byte [eax + 9], 1
jmp 0x4b0ee4
mov eax, dword [edi + 0x34]
mov dword [esp + 0x18], eax
mov ecx, dword [eax + 0xc]
mov eax, dword [edi + 0x20]
inc ecx
imul ecx, dword [edi + 0x18]
inc eax
add eax, ecx
mov dword [esp + 0x10], eax
mov eax, dword [ebx + 0xc]
mov dword [esp + 0x24], eax
cmp dword [ebx + 0x10], eax
jg 0x4b24fb
mov ecx, ebx
call fcn.004a1610
test eax, eax
jne 0x4b2532
mov eax, dword [esp + 0x24]
inc dword [ebx + 0xc]
lea ecx, [eax + eax*4]
mov eax, dword [ebx + 0x14]
mov edx, dword [esp + 0x10]
mov dword [eax + ecx*4 + 4], edx
mov edx, dword [ebp + 8]
mov word [eax + ecx*4], 0x6c
mov byte [eax + ecx*4 + 3], 0
mov dword [eax + ecx*4 + 8], edx
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov byte [ebx + 0x6e], 0
cmp dword [edi + 0x24], 0
mov eax, dword [edi + 0x20]
jl 0x4b0ee4
jg 0x4b2549
test eax, eax
jb 0x4b0ee4
lea ecx, [eax + eax*2]
mov eax, dword [esp + 0x18]
mov eax, dword [eax + 0x10]
cmp byte [eax + ecx*8 + 0x16], 0x65
jne 0x4b0ee4
mov edi, dword [ebx + 0xc]
cmp dword [ebx + 0x10], edi
jg 0x4b2575
mov ecx, ebx
call fcn.004a1610
test eax, eax
jne 0x4b0ee4
mov eax, dword [ebx + 0x14]
lea ecx, [edi + edi*4]
inc dword [ebx + 0xc]
mov edx, dword [ebp + 8]
mov word [eax + ecx*4], 0x16
mov dword [eax + ecx*4 + 4], edx
mov dword [eax + ecx*4 + 8], 0
mov byte [eax + ecx*4 + 3], 0
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov byte [ebx + 0x6e], 0
mov ebx, edx
jmp 0x4b0ee8
mov eax, dword [edi + 0x10]
mov ecx, ebx
mov dword [esp + 0x18], 0
mov edx, dword [eax + 0xc]
mov eax, dword [eax]
mov dword [esp + 0x1c], edx
mov dword [esp + 0x24], eax
call fcn.004a1770
mov edx, dword [edi + 8]
mov dword [esp + 0x2c], eax
mov dword [esp + 0x28], edx
test edx, edx
je 0x4b2630
mov esi, edx
lea edi, [esp + 0x60]
mov ecx, 0x10
lea eax, [esp + 0x3c]
rep movsd dword es:[edi], dword [esi]
mov esi, dword [esp + 0x4c]
mov ecx, esi
push eax
call fcn.004b2a00
mov edi, dword [esp + 0x38]
add esp, 4
mov edx, dword [esp + 0x28]
mov dword [esp + 0x78], eax
lea eax, [esp + 0x60]
mov dword [esp + 0xa8], eax
lea eax, [esp + 0xa0]
mov byte [esp + 0x60], 0x84
mov byte [esp + 0xa0], 0x4c
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x24]
test eax, eax
jle 0x4b278c
mov edi, dword [ebp + 8]
lea ecx, [eax - 1]
mov eax, dword [esp + 0x1c]
shr ecx, 1
inc ecx
mov dword [esp + 0x10], ecx
lea ecx, [ecx]
inc dword [esi + 0x54]
mov eax, dword [eax]
test edx, edx
je 0x4b2662
mov dword [esp + 0xac], eax
jmp 0x4b2666
mov dword [esp + 0x18], eax
mov ecx, ebx
call fcn.004a1770
mov edx, dword [esp + 0x18]
mov ecx, esi
push 8
push eax
mov dword [esp + 0x58], eax
call fcn.004b3260
mov edx, dword [esp + 0x24]
mov ecx, esi
push edi
mov edx, dword [edx + 0x14]
call fcn.004b0d20
add esp, 0xc
mov dword [esp + 0x38], eax
cmp eax, edi
je 0x4b26fb
mov edx, dword [esi + 0xc]
mov dword [esp + 0x24], edx
test edx, edx
je 0x4b26fb
mov eax, dword [edx + 0xc]
mov dword [esp + 0x44], eax
cmp dword [edx + 0x10], eax
jg 0x4b26c3
mov ecx, edx
call fcn.004a1610
test eax, eax
jne 0x4b26fb
mov edx, dword [esp + 0x24]
mov eax, dword [esp + 0x44]
inc dword [edx + 0xc]
lea ecx, [eax + eax*4]
mov eax, dword [edx + 0x14]
mov esi, dword [esp + 0x38]
mov dword [eax + ecx*4 + 4], esi
mov esi, dword [esp + 0x4c]
mov word [eax + ecx*4], 0xf
mov byte [eax + ecx*4 + 3], 0
mov dword [eax + ecx*4 + 8], edi
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov byte [edx + 0x6e], 0
mov eax, dword [ebx + 0xc]
mov dword [esp + 0x24], eax
cmp dword [ebx + 0x10], eax
jg 0x4b2716
mov ecx, ebx
call fcn.004a1610
test eax, eax
jne 0x4b274e
mov eax, dword [esp + 0x24]
inc dword [ebx + 0xc]
lea ecx, [eax + eax*4]
mov eax, dword [ebx + 0x14]
mov edx, dword [esp + 0x2c]
mov word [eax + ecx*4], 1
mov byte [eax + ecx*4 + 3], 0
mov dword [eax + ecx*4 + 4], 0
mov dword [eax + ecx*4 + 8], edx
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov byte [ebx + 0x6e], 0
mov ecx, esi
call fcn.004b0680
mov ecx, dword [ebx + 0x20]
test ecx, ecx
je 0x4b276e
mov eax, dword [esp + 0x50]
lea eax, [eax*4 + 4]
sub ecx, eax
mov eax, dword [ebx + 0xc]
mov dword [ecx], eax
mov eax, dword [esp + 0x1c]
mov edx, dword [esp + 0x28]
add eax, 0x28
sub dword [esp + 0x10], 1
mov dword [esp + 0x1c], eax
jne 0x4b2650
mov edi, dword [esp + 0x34]
cmp dword [edi + 0xc], 0
je 0x4b281f
inc dword [esi + 0x54]
mov ecx, esi
push dword [ebp + 8]
mov edx, dword [edi + 0xc]
call fcn.004b0d20
mov edi, dword [ebp + 8]
add esp, 4
mov dword [esp + 0x10], eax
cmp eax, edi
je 0x4b2816
mov edx, dword [esi + 0xc]
mov dword [esp + 0x50], edx
test edx, edx
je 0x4b2816
mov eax, dword [edx + 0xc]
mov dword [esp + 0x24], eax
cmp dword [edx + 0x10], eax
jg 0x4b27de
mov ecx, edx
call fcn.004a1610
test eax, eax
jne 0x4b2816
mov edx, dword [esp + 0x50]
mov eax, dword [esp + 0x24]
inc dword [edx + 0xc]
lea ecx, [eax + eax*4]
mov eax, dword [edx + 0x14]
mov ebx, dword [esp + 0x10]
mov dword [eax + ecx*4 + 4], ebx
mov ebx, dword [esp + 0x30]
mov word [eax + ecx*4], 0xf
mov byte [eax + ecx*4 + 3], 0
mov dword [eax + ecx*4 + 8], edi
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov byte [edx + 0x6e], 0
mov ecx, esi
call fcn.004b0680
jmp 0x4b2869
mov edi, dword [ebx + 0xc]
cmp dword [ebx + 0x10], edi
jg 0x4b2832
mov ecx, ebx
call fcn.004a1610
test eax, eax
jne 0x4b2869
mov eax, dword [ebx + 0x14]
lea ecx, [edi + edi*4]
inc dword [ebx + 0xc]
mov edx, dword [ebp + 8]
mov word [eax + ecx*4], 0xa
mov byte [eax + ecx*4 + 3], 0
mov dword [eax + ecx*4 + 4], 0
mov dword [eax + ecx*4 + 8], edx
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov byte [ebx + 0x6e], 0
mov ecx, dword [ebx + 0x20]
test ecx, ecx
je 0x4b0ee4
mov eax, dword [esp + 0x2c]
lea eax, [eax*4 + 4]
sub ecx, eax
mov eax, dword [ebx + 0xc]
mov dword [ecx], eax
jmp 0x4b0ee4
mov edi, dword [ebx + 0xc]
cmp dword [ebx + 0x10], edi
jg 0x4b28a2
mov ecx, ebx
call fcn.004a1610
test eax, eax
jne 0x4b0ee4
mov eax, dword [ebx + 0x14]
lea ecx, [edi + edi*4]
inc dword [ebx + 0xc]
mov edx, dword [ebp + 8]
mov word [eax + ecx*4], 0xa
mov dword [eax + ecx*4 + 4], 0
mov dword [eax + ecx*4 + 8], edx
jmp 0x4b2593
mov byte [eax + 9], 1
cmp dword [esp + 0x40], 0
je 0x4b290a
cmp byte [esi + 0x15], 8
jae 0x4b290a
xor ecx, ecx
lea eax, [esi + 0x60]
jmp 0x4b28e0
mov edx, dword [esp + 0x40]
cmp dword [eax + 0x10], edx
je 0x4b2906
inc ecx
add eax, 0x18
cmp ecx, 0xa
jl 0x4b28e0
movzx eax, byte [esi + 0x15]
mov dword [esi + eax*4 + 0x18], edx
mov eax, ebx
inc byte [esi + 0x15]
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov byte [eax + 9], 1
pop edi
pop esi
mov eax, ebx
pop ebx
mov esp, ebp
pop ebp
ret