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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x8c
mov eax, dword [0x511080]
xor eax, esp
mov dword [esp + 0x88], eax
mov eax, dword [ebp + 8]
push ebx
push esi
mov esi, ecx
mov dword [esp + 8], eax
mov eax, dword [ebp + 0x14]
push edi
mov dword [esp + 0x4c], eax
mov edi, edx
mov ebx, dword [esi + 8]
xor eax, eax
mov dword [esp + 0x58], edi
mov dword [esp + 0x18], esi
mov byte [esp + 0x3f], 0
mov ecx, dword [ebx + 0x6c]
mov dword [esp + 0x34], eax
mov dword [esp + 0x60], eax
mov dword [esp + 0x68], eax
mov dword [esp + 0x14], ebx
mov dword [esp + 0x6c], ecx
cmp dword [ebx + 0x70], ecx
jg 0x4b24c3
push eax
push eax
push eax
lea edx, [eax + 0xf]
mov ecx, ebx
call fcn.00440850
add esp, 0xc
mov dword [esp + 0x6c], eax
jmp 0x4b24f6
lea eax, [ecx + 1]
mov dword [ebx + 0x6c], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [ebx + 0x68]
mov dword [eax + ecx*4], 0xf
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 ecx, dword [esp + 0xc]
xor edx, edx
mov ebx, dword [edi + 0x18]
xorps xmm0, xmm0
mov dword [esp + 0x40], edx
mov dword [esp + 0x1c], ebx
mov eax, dword [ecx + 0x10]
mov dword [esp + 0x5c], eax
mov eax, dword [edi + 0xc]
movlpd qword [esp + 0x28], xmm0
lea edi, [eax + eax*2]
mov eax, dword [esp + 0x4c]
shl edi, 4
add edi, ebx
mov dword [esp + 0x54], edi
mov eax, dword [eax + 0x50]
mov dword [esp + 0x44], eax
cmp ebx, edi
jae 0x4b29e6
mov eax, dword [esp + 0x2c]
lea edx, [ecx + 0x2c]
mov dword [esp + 0x20], eax
mov eax, dword [esp + 0x28]
mov dword [esp + 0x10], edx
mov dword [esp + 0x38], edx
mov dword [esp + 0x24], 1
mov dword [esp + 0x50], eax
nop dword [eax]
test byte [ebx + 0xa], 2
mov edi, dword [ebx]
jne 0x4b281c
mov cl, byte [ecx + 0x24]
test cl, 0x40
jne 0x4b2818
mov eax, dword [edi + 4]
and eax, 1
test cl, 8
je 0x4b25a9
test eax, eax
je 0x4b2818
mov ecx, dword [esp + 0x38]
mov eax, dword [ecx]
cmp dword [edi + 0x24], eax
je 0x4b25a5
mov edi, ecx
mov ecx, dword [esp + 0xc]
mov dword [esp + 0x10], edi
jmp 0x4b2820
mov edx, ecx
jmp 0x4b25b7
test eax, eax
jne 0x4b2818
mov eax, dword [esp + 0x38]
mov eax, dword [eax]
mov dword [esp + 0x10], edx
mov ecx, 3
mov word [esp + 0x8c], cx
mov dword [esp + 0x7c], fcn.0045ad40
mov dword [esp + 0x80], 0x45abe0
mov dword [esp + 0x90], eax
test edi, edi
je 0x4b25f9
mov edx, edi
lea ecx, [esp + 0x78]
call fcn.00454c50
mov cx, word [esp + 0x8c]
test cx, cx
je 0x4b2818
test edi, edi
je 0x4b261a
mov ecx, dword [esi]
mov edx, edi
push 0
push 0
call fcn.00459a00
add esp, 8
mov ebx, eax
jmp 0x4b261c
xor ebx, ebx
mov eax, dword [esp + 0x34]
mov edi, dword [esi]
test eax, eax
jne 0x4b263f
mov edi, dword [esp + 0x10]
mov ecx, dword [esp + 0xc]
mov dword [esp + 0x34], ebx
mov ebx, dword [esp + 0x1c]
mov dword [esp + 0x10], edi
jmp 0x4b2820
test ebx, ebx
jne 0x4b265c
mov edi, dword [esp + 0x10]
mov ebx, dword [esp + 0x1c]
mov ecx, dword [esp + 0xc]
mov dword [esp + 0x34], eax
mov dword [esp + 0x10], edi
jmp 0x4b2820
mov eax, dword [eax + 4]
and eax, 0x20000001
cmp eax, 0x20000000
je 0x4b267e
mov eax, dword [ebx + 4]
and eax, 0x20000001
cmp eax, 0x20000000
jne 0x4b2754
cmp byte [esi + 0xd4], 2
jae 0x4b2754
push 0
push 0xc
test edi, edi
je 0x4b269c
mov ecx, edi
call fcn.00419010
jmp 0x4b26a1
call fcn.004188b0
mov ecx, eax
add esp, 8
test ecx, ecx
je 0x4b26c8
mov eax, dword [esi + 0x84]
mov dword [ecx], eax
mov eax, dword [esp + 0x34]
mov dword [esi + 0x84], ecx
mov dword [ecx + 4], eax
mov dword [ecx + 8], fcn.004598a0
jmp 0x4b26d3
mov edx, dword [esp + 0x34]
mov ecx, dword [esi]
call fcn.00459770
mov ecx, dword [esi]
push 0
push 0xc
test ecx, ecx
je 0x4b26e4
call fcn.00419010
jmp 0x4b26e9
call fcn.004188b0
mov ecx, eax
add esp, 8
test ecx, ecx
je 0x4b270c
mov eax, dword [esi + 0x84]
mov dword [ecx], eax
mov dword [esi + 0x84], ecx
mov dword [ecx + 4], ebx
mov dword [ecx + 8], fcn.004598a0
jmp 0x4b2715
mov ecx, dword [esi]
mov edx, ebx
call fcn.00459770
lea eax, [esp + 0x70]
mov dword [esp + 0x70], 0x507cc8
push 0
push eax
mov edx, 0x9b
mov dword [esp + 0x7c], 1
mov ecx, edi
call fcn.00458c70
mov edi, dword [esp + 0x18]
add esp, 8
mov ebx, dword [esp + 0x1c]
mov ecx, dword [esp + 0xc]
mov dword [esp + 0x34], eax
mov dword [esp + 0x10], edi
jmp 0x4b2820
push 0
push 0x34
mov ecx, edi
call fcn.00419010
mov edi, eax
add esp, 8
test edi, edi
je 0x4b27ee
push 0x34
push 0
push edi
call fcn.004d4bd0
or eax, 0xffffffff
mov dword [edi + 0x10], ebx
mov word [edi + 0x22], ax
add esp, 0xc
mov byte [edi], 0x2c
mov ecx, dword [ebx + 4]
and ecx, 0x400208
or ecx, dword [edi + 4]
mov dword [edi + 4], ecx
mov edx, dword [ebx + 0x18]
mov ebx, dword [esp + 0x34]
inc edx
mov dword [edi + 0x18], edx
mov dword [edi + 0xc], ebx
mov eax, dword [ebx + 4]
and eax, 0x400208
or eax, ecx
mov dword [edi + 4], eax
mov eax, dword [ebx + 0x18]
cmp eax, edx
jl 0x4b27bd
lea edx, [eax + 1]
mov dword [edi + 0x18], edx
mov eax, dword [esi]
mov eax, dword [eax + 0x84]
cmp edx, eax
jle 0x4b2802
push eax
push str.Expression_tree_is_too_large__maximum_depth__d_
push esi
call fcn.0041c910
mov ebx, dword [esp + 0x28]
add esp, 0xc
mov ecx, dword [esp + 0xc]
mov dword [esp + 0x34], edi
mov edi, dword [esp + 0x10]
mov dword [esp + 0x10], edi
jmp 0x4b2820
mov edx, dword [esp + 0x34]
mov ecx, dword [esi]
call fcn.00459770
mov ecx, dword [esi]
mov edx, ebx
call fcn.00459770
mov ebx, dword [esp + 0x1c]
mov ecx, dword [esp + 0xc]
mov dword [esp + 0x34], edi
mov edi, dword [esp + 0x10]
mov dword [esp + 0x10], edi
jmp 0x4b2820
mov ecx, dword [esp + 0xc]
mov edi, dword [esp + 0x10]
mov edi, dword [edi]
cmp dword [ebx + 0x14], edi
jne 0x4b29bf
test byte [ebx + 0xc], 0x82
je 0x4b29bf
mov cl, byte [ecx + 0x24]
test cl, 0x58
je 0x4b2862
mov eax, dword [ebx]
mov edx, dword [eax + 4]
test dl, 3
je 0x4b29bf
cmp dword [eax + 0x24], edi
jne 0x4b29bf
test cl, 0x18
je 0x4b2862
test dl, 2
jne 0x4b29bf
mov ecx, dword [ebp + 0xc]
mov eax, dword [ebx + 0x24]
and ecx, dword [ebx + 0x20]
and eax, dword [ebp + 0x10]
or ecx, eax
jne 0x4b29bf
mov edx, dword [ebx + 0x18]
test edx, edx
js 0x4b29bf
mov eax, dword [esp + 0xc]
add edx, edx
mov ecx, dword [ebx]
mov eax, dword [eax + 0x10]
mov eax, dword [eax + 4]
mov dl, byte [eax + edx*8 + 8]
call fcn.004581d0
test eax, eax
je 0x4b29bf
mov ecx, dword [ebx + 0x18]
xor edi, edi
cmp ecx, 0x40
jl 0x4b28b1
mov ebx, 0x80000000
jmp 0x4b28c6
mov eax, ecx
xor ebx, ebx
bts edi, eax
cmp eax, 0x20
cmovae ebx, edi
xor edi, ebx
cmp eax, 0x40
cmovae ebx, edi
cmp byte [esp + 0x3f], 0
jne 0x4b28f2
mov edx, dword [esp + 0x5c]
add ecx, ecx
mov eax, dword [edx + 4]
push dword [eax + ecx*8]
push dword [edx]
push str.automatic_index_on__s__s_
push 0x11c
call fcn.0041bb20
add esp, 0x10
mov byte [esp + 0x3f], 1
mov ecx, edi
mov eax, ebx
and ecx, dword [esp + 0x50]
and eax, dword [esp + 0x20]
or ecx, eax
jne 0x4b29bb
mov eax, dword [esp + 0x44]
mov edx, dword [esp + 0x24]
mov ecx, dword [esi]
mov dword [esp + 0x48], ecx
movzx eax, word [eax + 0x34]
cmp eax, edx
jge 0x4b298a
lea eax, [edx + 7]
and eax, 0xfffffff8
mov dword [esp + 0x28], eax
shl eax, 2
push 0
push eax
call fcn.00419010
mov ecx, eax
add esp, 8
mov dword [esp + 0x64], ecx
test ecx, ecx
je 0x4b33d2
mov edx, dword [esp + 0x44]
movzx eax, word [edx + 0x34]
shl eax, 2
push eax
push dword [edx + 0x38]
push ecx
call fcn.004d4640
mov ecx, dword [esp + 0x50]
add esp, 0xc
mov edx, dword [ecx + 0x38]
lea eax, [ecx + 0x40]
cmp edx, eax
je 0x4b2975
mov ecx, dword [esp + 0x48]
call fcn.00418b80
mov ecx, dword [esp + 0x44]
mov eax, dword [esp + 0x64]
mov edx, dword [esp + 0x24]
mov dword [ecx + 0x38], eax
mov eax, dword [esp + 0x28]
mov word [ecx + 0x34], ax
jmp 0x4b298e
mov ecx, dword [esp + 0x44]
mov esi, dword [esp + 0x40]
inc edx
mov eax, dword [ecx + 0x38]
or dword [esp + 0x50], edi
mov edi, dword [esp + 0x20]
mov ecx, dword [esp + 0x1c]
inc dword [esp + 0x40]
or edi, ebx
mov dword [eax + esi*4], ecx
mov ebx, ecx
mov esi, dword [esp + 0x18]
mov dword [esp + 0x24], edx
mov dword [esp + 0x20], edi
jmp 0x4b29c3
mov ebx, dword [esp + 0x1c]
mov edi, dword [esp + 0x20]
mov edx, dword [esp + 0x10]
add ebx, 0x30
mov ecx, dword [esp + 0xc]
mov dword [esp + 0x1c], ebx
cmp ebx, dword [esp + 0x54]
jb 0x4b2560
mov edx, dword [esp + 0x40]
mov ebx, dword [esp + 0x50]
jmp 0x4b29ee
mov edi, dword [esp + 0x2c]
mov ebx, dword [esp + 0x28]
mov esi, dword [esp + 0x44]
not ebx
movzx eax, dx
not edi
or edi, 0x80000000
mov word [esi + 0x30], ax
mov word [esi + 0x18], ax
mov eax, esi
mov esi, dword [esp + 0x18]
mov dword [eax + 0x2c], 0x4241
and ebx, dword [ecx + 0x38]
mov eax, dword [esp + 0x5c]
and edi, dword [ecx + 0x3c]
mov dword [esp + 0x50], ebx
mov ebx, 0x3f
mov dword [esp + 0x20], edi
movzx eax, word [eax + 0x22]
cmp bx, ax
jge 0x4b2a3c
mov dword [esp + 0x10], ebx
xor edi, edi
jmp 0x4b2a49
movsx ebx, ax
xor edi, edi
mov dword [esp + 0x10], ebx
test ebx, ebx
jle 0x4b2a87
mov esi, dword [esp + 0x20]
nop dword [eax]
xor edx, edx
xor ecx, ecx
mov eax, edi
bts edx, eax
cmp eax, 0x20
cmovae ecx, edx
xor edx, ecx
cmp eax, 0x40
cmovae ecx, edx
and edx, dword [esp + 0x50]
and ecx, esi
or edx, ecx
mov edx, dword [esp + 0x40]
je 0x4b2a7a
inc edx
mov dword [esp + 0x40], edx
inc edi
cmp edi, ebx
jl 0x4b2a50
mov esi, dword [esp + 0x18]
mov ecx, dword [esp + 0xc]
cmp dword [ecx + 0x3c], 0
jg 0x4b2aa6
jl 0x4b2a95
cmp dword [ecx + 0x38], 0
jae 0x4b2aa6
mov eax, dword [esp + 0x5c]
movsx eax, word [eax + 0x22]
add eax, 0xffffffc1
add edx, eax
mov dword [esp + 0x40], edx
mov ebx, dword [esi]
movzx eax, dx
inc eax
movzx eax, ax
movsx edi, ax
mov dword [esp + 0x38], eax
lea eax, [edi*4 + 9]
add eax, edi
lea ecx, [edi*4 + 7]
and eax, 0xfffffff8
and ecx, 0xfffffff8
add eax, 0x48
mov dword [esp + 0x48], ecx
add eax, ecx
mov dword [esp + 0x28], eax
cdq
push edx
push eax
test ebx, ebx
je 0x4b2aef
mov ecx, ebx
call fcn.00419010
mov ebx, eax
mov dword [esp + 0x24], ebx
jmp 0x4b2afa
call fcn.004188b0
mov ebx, eax
mov dword [esp + 0x24], eax
add esp, 8
test ebx, ebx
je 0x4b33d2
push dword [esp + 0x28]
push 0
push ebx
call fcn.004d4bd0
mov ecx, dword [esp + 0x4c]
lea eax, [ebx + 0x48]
mov dword [ebx + 0x20], eax
add esp, 0xc
add eax, dword [esp + 0x48]
xorps xmm0, xmm0
mov dword [ebx + 8], eax
movlpd qword [esp + 0x28], xmm0
lea eax, [eax + edi*2]
add eax, 2
mov dword [ebx + 4], eax
lea eax, [eax + edi*2]
mov edi, dword [esp + 0x58]
mov dword [ebx + 0x1c], eax
mov eax, dword [esp + 0x38]
mov word [ebx + 0x34], ax
movzx eax, cx
mov word [ebx + 0x32], ax
mov eax, dword [esp + 0x44]
mov dword [eax + 0x20], ebx
mov eax, dword [esp + 0x5c]
mov dword [ebx], str.auto_index
mov dword [ebx + 0xc], eax
xor ebx, ebx
mov edi, dword [edi + 0x18]
mov dword [esp + 0x24], edi
cmp edi, dword [esp + 0x54]
jae 0x4b2d0e
mov ecx, dword [esp + 0x2c]
mov eax, dword [esp + 0x10]
mov edx, dword [esp + 0xc]
mov dword [esp + 0x38], ecx
mov ecx, dword [esp + 0x28]
mov dword [esp + 0x10], eax
mov dword [esp + 0x64], ecx
mov ecx, dword [edx + 0x2c]
cmp dword [edi + 0x14], ecx
jne 0x4b2cfd
test byte [edi + 0xc], 0x82
je 0x4b2cfd
mov dl, byte [edx + 0x24]
test dl, 0x58
je 0x4b2be4
mov ecx, dword [edi]
test byte [ecx + 4], 3
je 0x4b2cf9
mov eax, dword [esp + 0xc]
mov esi, dword [eax + 0x2c]
cmp dword [ecx + 0x24], esi
mov esi, dword [esp + 0x18]
mov eax, dword [esp + 0x10]
jne 0x4b2cf9
test dl, 0x18
je 0x4b2be4
test byte [ecx + 4], 2
jne 0x4b2cf9
mov ecx, dword [ebp + 0xc]
and ecx, dword [edi + 0x20]
mov dword [esp + 0x48], eax
mov eax, dword [edi + 0x24]
and eax, dword [ebp + 0x10]
or ecx, eax
jne 0x4b2cf5
mov edx, dword [edi + 0x18]
test edx, edx
js 0x4b2cf5
mov eax, dword [esp + 0xc]
add edx, edx
mov ecx, dword [edi]
mov eax, dword [eax + 0x10]
mov eax, dword [eax + 4]
mov dl, byte [eax + edx*8 + 8]
call fcn.004581d0
test eax, eax
je 0x4b2cf5
mov eax, dword [edi + 0x18]
xor edx, edx
movzx ecx, ax
mov dword [esp + 0x28], ecx
cmp eax, 0x40
jl 0x4b2c3e
mov edi, 0x80000000
jmp 0x4b2c51
xor edi, edi
bts edx, eax
cmp eax, 0x20
cmovae edi, edx
xor edx, edi
cmp eax, 0x40
cmovae edi, edx
mov eax, dword [esp + 0x48]
mov ecx, edx
and ecx, dword [esp + 0x64]
mov dword [esp + 0x10], eax
mov eax, edi
and eax, dword [esp + 0x38]
or ecx, eax
jne 0x4b2cf1
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x24]
or dword [esp + 0x64], edx
mov edx, dword [esp + 0x28]
mov eax, dword [eax + 4]
mov ecx, dword [ecx]
or dword [esp + 0x38], edi
mov word [eax + ebx*2], dx
test dword [ecx + 4], 0x400
je 0x4b2c9b
mov edi, dword [ecx + 0xc]
mov edx, dword [ecx + 0x10]
jmp 0x4b2ca1
mov edi, dword [ecx + 0x10]
mov edx, dword [ecx + 0xc]
test dword [edx + 4], 0x200
jne 0x4b2cc4
test edi, edi
je 0x4b2cb7
test dword [edi + 4], 0x200
jne 0x4b2cc2
mov ecx, esi
call fcn.00458010
test eax, eax
jne 0x4b2ccf
mov edx, edi
mov ecx, esi
call fcn.00458010
test eax, eax
je 0x4b2cd3
mov ecx, dword [eax]
jmp 0x4b2cd8
mov ecx, 0x500b60
mov eax, dword [esp + 0x1c]
mov edi, dword [esp + 0x24]
mov eax, dword [eax + 0x20]
mov dword [eax + ebx*4], ecx
inc ebx
mov eax, dword [esp + 0x48]
mov dword [esp + 0x10], eax
jmp 0x4b2cf9
mov edi, dword [esp + 0x24]
mov eax, dword [esp + 0x10]
mov edx, dword [esp + 0xc]
add edi, 0x30
mov dword [esp + 0x24], edi
cmp edi, dword [esp + 0x54]
jb 0x4b2b93
xor edi, edi
cmp dword [esp + 0x10], edi
jle 0x4b2d62
mov esi, dword [esp + 0x10]
nop word [eax + eax]
xor edx, edx
xor ecx, ecx
mov eax, edi
bts edx, eax
cmp eax, 0x20
cmovae ecx, edx
xor edx, ecx
cmp eax, 0x40
cmovae ecx, edx
and edx, dword [esp + 0x50]
and ecx, dword [esp + 0x20]
or edx, ecx
je 0x4b2d59
mov ecx, dword [esp + 0x1c]
mov eax, dword [ecx + 4]
mov word [eax + ebx*2], di
mov eax, dword [ecx + 0x20]
mov dword [eax + ebx*4], 0x500b60
inc ebx
inc edi
cmp edi, esi
jl 0x4b2d20
mov esi, dword [esp + 0x18]
mov eax, dword [esp + 0xc]
cmp dword [eax + 0x3c], 0
jg 0x4b2dad
jl 0x4b2d74
cmp dword [eax + 0x38], 0
jae 0x4b2dad
mov edi, dword [esp + 0x5c]
mov eax, 0x3f
mov edx, dword [esp + 0x1c]
cmp ax, word [edi + 0x22]
jge 0x4b2db1
mov ecx, eax
nop dword [eax]
mov eax, dword [edx + 4]
mov word [eax + ebx*2], cx
inc ecx
mov eax, dword [edx + 0x20]
mov dword [eax + ebx*4], 0x500b60
inc ebx
movsx eax, word [edi + 0x22]
cmp ecx, eax
jl 0x4b2d90
jmp 0x4b2db1
mov edx, dword [esp + 0x1c]
mov eax, dword [edx + 4]
or ecx, 0xffffffff
mov edi, dword [esp + 0x14]
mov word [eax + ebx*2], cx
mov eax, dword [edx + 0x20]
mov ecx, dword [esp + 0x4c]
mov edx, dword [esp + 0x40]
inc edx
mov dword [eax + ebx*4], 0x500b60
mov eax, dword [esi + 0x28]
mov dword [ecx + 8], eax
inc dword [esi + 0x28]
mov eax, dword [ecx + 8]
mov ecx, dword [edi + 0x6c]
mov dword [esp + 0x28], eax
cmp dword [edi + 0x70], ecx
jg 0x4b2dff
push 0
push edx
push eax
mov edx, 0x74
mov ecx, edi
call fcn.00440850
add esp, 0xc
jmp 0x4b2e32
lea eax, [ecx + 1]
mov dword [edi + 0x6c], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [edi + 0x68]
mov edi, dword [esp + 0x28]
mov dword [eax + ecx*4 + 4], edi
mov edi, dword [esp + 0x14]
mov dword [eax + ecx*4], 0x74
mov dword [eax + ecx*4 + 8], edx
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov eax, dword [esi + 8]
mov ecx, esi
mov edx, dword [esp + 0x1c]
mov dword [esp + 0x28], eax
call fcn.004751a0
mov dword [esp + 0x48], eax
test eax, eax
je 0x4b2e7e
mov edx, dword [esp + 0x28]
mov ecx, dword [edx]
cmp byte [ecx + 0x57], 0
je 0x4b2e68
push eax
mov edx, 0xfffffff8
call fcn.00441340
add esp, 4
jmp 0x4b2e7e
mov eax, dword [edx + 0x6c]
lea ecx, [eax + eax*4]
mov eax, dword [edx + 0x68]
mov edx, dword [esp + 0x48]
mov byte [eax + ecx*4 - 0x13], 0xf8
mov dword [eax + ecx*4 - 4], edx
mov eax, dword [esi]
test dword [eax + 0x50], 0x80000
jne 0x4b2eeb
mov edx, dword [esi + 0x2c]
mov eax, dword [esp + 0x4c]
inc edx
mov dword [esi + 0x2c], edx
mov dword [eax + 0x34], edx
mov ecx, dword [edi + 0x6c]
cmp dword [edi + 0x70], ecx
jg 0x4b2eb8
push 0
push edx
push 0x2710
mov edx, 0x4d
mov ecx, edi
call fcn.00440850
add esp, 0xc
jmp 0x4b2eeb
mov esi, dword [esp + 0x18]
lea eax, [ecx + 1]
mov dword [edi + 0x6c], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [edi + 0x68]
mov dword [eax + ecx*4], 0x4d
mov dword [eax + ecx*4 + 4], 0x2710
mov dword [eax + ecx*4 + 8], edx
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov edx, dword [esp + 0x4c]
movzx eax, byte [edx + 0x3c]
lea ecx, [eax + eax*8]
mov eax, dword [esp + 0x58]
mov eax, dword [eax]
mov eax, dword [eax + 4]
test byte [eax + ecx*8 + 0x30], 0x20
lea eax, [eax + ecx*8]
mov dword [esp + 0x38], eax
je 0x4b3014
mov ecx, dword [edi + 0x6c]
mov edx, dword [eax + 0x24]
mov dword [esp + 0x58], edx
mov dword [esp + 0x68], ecx
cmp dword [edi + 0x70], ecx
jg 0x4b2f43
push 0
push 0
push 0
mov edx, 0x47
mov ecx, edi
call fcn.00440850
mov edx, dword [esp + 0x64]
add esp, 0xc
mov dword [esp + 0x68], eax
jmp 0x4b2f7a
mov esi, dword [esp + 0x18]
lea eax, [ecx + 1]
mov dword [edi + 0x6c], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [edi + 0x68]
mov dword [eax + ecx*4], 0x47
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 eax, dword [esp + 0x38]
mov ecx, dword [edi + 0x6c]
mov eax, dword [eax + 0x20]
mov dword [esp + 0x28], eax
cmp dword [edi + 0x70], ecx
jg 0x4b2fa6
push eax
push 0
push edx
mov edx, 0xb
mov ecx, edi
call fcn.00440850
mov edx, dword [esp + 0x64]
add esp, 0xc
jmp 0x4b2fd9
mov esi, dword [esp + 0x28]
lea eax, [ecx + 1]
mov dword [edi + 0x6c], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [edi + 0x68]
mov dword [eax + ecx*4 + 0xc], esi
mov esi, dword [esp + 0x18]
mov dword [eax + ecx*4], 0xb
mov dword [eax + ecx*4 + 4], edx
mov dword [eax + ecx*4 + 8], 0
mov dword [eax + ecx*4 + 0x10], 0
mov ecx, dword [esp + 0x14]
mov edi, dword [edi + 0x6c]
cmp dword [ecx + 0x70], edi
jg 0x4b2ffb
push 0
push 0
push edx
mov edx, 0xc
call fcn.00440850
add esp, 0xc
mov edi, eax
jmp 0x4b3070
lea eax, [edi + 1]
mov dword [ecx + 0x6c], eax
lea ecx, [edi + edi*4]
mov eax, dword [esp + 0x14]
mov eax, dword [eax + 0x68]
mov dword [eax + ecx*4], 0xc
jmp 0x4b3050
mov ecx, dword [esp + 0x14]
mov edi, dword [edi + 0x6c]
mov edx, dword [edx + 4]
cmp dword [ecx + 0x70], edi
jg 0x4b3039
push 0
push 0
push edx
mov edx, 0x24
call fcn.00440850
add esp, 0xc
mov edi, eax
jmp 0x4b3070
lea eax, [edi + 1]
mov dword [ecx + 0x6c], eax
lea ecx, [edi + edi*4]
mov eax, dword [esp + 0x14]
mov eax, dword [eax + 0x68]
mov dword [eax + ecx*4], 0x24
mov esi, dword [esp + 0x18]
mov dword [eax + ecx*4 + 0x10], 0
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 8], 0
mov dword [eax + ecx*4 + 4], edx
mov eax, dword [esp + 0x34]
test eax, eax
je 0x4b309a
dec dword [esi + 0x38]
mov ecx, dword [esi + 0x38]
push 0x10
push ecx
push eax
push esi
mov dword [esp + 0x70], ecx
call fcn.00461c00
mov ecx, dword [esp + 0x54]
add esp, 0x10
or dword [ecx + 0x2c], 0x20000
mov al, byte [esi + 0x13]
test al, al
jne 0x4b30a9
inc dword [esi + 0x2c]
mov eax, dword [esi + 0x2c]
jmp 0x4b30b8
dec al
mov byte [esi + 0x13], al
movzx eax, al
mov eax, dword [esi + eax*4 + 0x9c]
mov edx, dword [esp + 0x1c]
mov ecx, esi
push 0
push 0
push 0
push 0
push eax
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0x60]
push dword [eax + 4]
call fcn.00477cc0
mov edx, dword [esp + 0x2c]
add esp, 0x18
mov dword [esp + 0x54], eax
mov eax, dword [esp + 0x4c]
mov eax, dword [eax + 0x34]
mov dword [esp + 0x28], eax
test eax, eax
je 0x4b3187
mov ecx, dword [esp + 0x44]
movzx ecx, word [ecx + 0x18]
mov dword [esp + 0x48], ecx
mov ecx, dword [edx + 0x6c]
mov dword [esp + 0x58], ecx
cmp dword [edx + 0x70], ecx
jg 0x4b312d
push dword [esp + 0x54]
mov ecx, dword [esp + 0x18]
mov edx, 0xb4
push 0
push eax
call fcn.00440850
mov edx, dword [esp + 0x20]
add esp, 0xc
mov ecx, eax
jmp 0x4b3168
mov esi, dword [esp + 0x28]
lea eax, [ecx + 1]
mov dword [edx + 0x6c], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [edx + 0x68]
mov dword [eax + ecx*4 + 4], esi
mov esi, dword [esp + 0x54]
mov dword [eax + ecx*4 + 0xc], esi
mov esi, dword [esp + 0x18]
mov dword [eax + ecx*4], 0xb4
mov dword [eax + ecx*4 + 8], 0
mov dword [eax + ecx*4 + 0x10], 0
mov ecx, dword [esp + 0x58]
mov eax, dword [edx]
cmp byte [eax + 0x57], 0
jne 0x4b3187
mov eax, dword [edx + 0x68]
lea ecx, [ecx + ecx*4]
mov esi, dword [esp + 0x48]
mov dword [eax + ecx*4 + 0x10], esi
mov esi, dword [esp + 0x18]
mov byte [eax + ecx*4 + 1], 0xfd
mov eax, dword [esp + 0x4c]
mov ecx, dword [edx + 0x6c]
mov eax, dword [eax + 8]
mov dword [esp + 0x28], eax
cmp dword [edx + 0x70], ecx
jg 0x4b31b8
mov ecx, dword [esp + 0x14]
mov edx, 0x8a
push 0
push dword [esp + 0x28]
push eax
call fcn.00440850
mov edx, dword [esp + 0x20]
add esp, 0xc
jmp 0x4b31ef
mov esi, dword [esp + 0x28]
lea eax, [ecx + 1]
mov dword [edx + 0x6c], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [edx + 0x68]
mov dword [eax + ecx*4 + 4], esi
mov esi, dword [esp + 0x24]
mov dword [eax + ecx*4 + 8], esi
mov esi, dword [esp + 0x18]
mov dword [eax + ecx*4], 0x8a
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov eax, dword [edx + 0x6c]
test eax, eax
jle 0x4b320a
lea ecx, [eax + eax*4]
mov esi, 0x10
mov eax, dword [edx + 0x68]
mov word [eax + ecx*4 - 0x12], si
mov esi, dword [esp + 0x18]
cmp dword [esp + 0x34], 0
je 0x4b3243
mov ecx, dword [edx + 0xc]
not dword [esp + 0x60]
mov eax, dword [ecx + 0x3c]
add eax, dword [ecx + 0x38]
jns 0x4b3232
push dword [esp + 0x60]
call fcn.00441050
mov edx, dword [esp + 0x18]
add esp, 4
jmp 0x4b3243
mov esi, dword [esp + 0x60]
mov ecx, dword [ecx + 0x40]
mov eax, dword [edx + 0x6c]
mov dword [ecx + esi*4], eax
mov esi, dword [esp + 0x18]
mov eax, dword [esp + 0x38]
test byte [eax + 0x30], 0x20
je 0x4b32fb
mov eax, dword [edx]
cmp byte [eax + 0x57], 0
je 0x4b3260
mov ecx, 0x514d18
jmp 0x4b326d
mov eax, dword [esp + 0x68]
lea ecx, [eax + eax*4]
mov eax, dword [edx + 0x68]
lea ecx, [eax + ecx*4]
mov eax, dword [esp + 0x54]
mov edx, edi
add eax, ebx
mov ebx, dword [esp + 0x38]
mov dword [ecx + 8], eax
mov ecx, esi
mov eax, dword [esp + 0x4c]
push dword [eax + 8]
push dword [ebx + 0x28]
push dword [eax + 4]
call fcn.004b23c0
mov edx, dword [esp + 0x20]
add esp, 0xc
mov ecx, dword [edx + 0x6c]
cmp dword [edx + 0x70], ecx
jg 0x4b32c2
mov ecx, dword [esp + 0x14]
mov edx, 9
push 0
push edi
push 0
call fcn.00440850
mov edx, dword [esp + 0x20]
add esp, 0xc
and dword [ebx + 0x30], 0xffffffdf
jmp 0x4b3376
mov esi, dword [esp + 0x18]
lea eax, [ecx + 1]
mov dword [edx + 0x6c], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [edx + 0x68]
mov dword [eax + ecx*4], 9
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
and dword [ebx + 0x30], 0xffffffdf
jmp 0x4b3376
mov eax, dword [esp + 0x4c]
lea ebx, [edi + 1]
mov ecx, dword [edx + 0x6c]
mov eax, dword [eax + 4]
mov dword [esp + 0x28], eax
cmp dword [edx + 0x70], ecx
jg 0x4b332c
mov ecx, dword [esp + 0x14]
mov edx, 0x27
push 0
push ebx
push eax
call fcn.00440850
mov edx, dword [esp + 0x20]
add esp, 0xc
jmp 0x4b335f
mov esi, dword [esp + 0x28]
lea eax, [ecx + 1]
mov dword [edx + 0x6c], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [edx + 0x68]
mov dword [eax + ecx*4 + 4], esi
mov esi, dword [esp + 0x18]
mov dword [eax + ecx*4], 0x27
mov dword [eax + ecx*4 + 8], ebx
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov eax, dword [edx + 0x6c]
test eax, eax
jle 0x4b3376
lea ecx, [eax + eax*4]
mov ebx, 3
mov eax, dword [edx + 0x68]
mov word [eax + ecx*4 - 0x12], bx
mov eax, dword [edx]
mov ebx, dword [edx + 0x6c]
cmp byte [eax + 0x57], 0
je 0x4b3388
mov eax, 0x514d18
jmp 0x4b3391
mov eax, dword [edx + 0x68]
lea ecx, [edi + edi*4]
lea eax, [eax + ecx*4]
mov ecx, dword [esp + 0x24]
mov dword [eax + 8], ebx
test ecx, ecx
je 0x4b33b0
mov al, byte [esi + 0x13]
cmp al, 8
jae 0x4b33b0
movzx eax, al
mov dword [esi + eax*4 + 0x9c], ecx
inc byte [esi + 0x13]
mov eax, dword [edx]
mov edi, dword [edx + 0x6c]
cmp byte [eax + 0x57], 0
je 0x4b33c2
mov eax, 0x514d18
jmp 0x4b33cf
mov eax, dword [esp + 0x6c]
lea ecx, [eax + eax*4]
mov eax, dword [edx + 0x68]
lea eax, [eax + ecx*4]
mov dword [eax + 8], edi
mov eax, dword [esp + 0x34]
test eax, eax
je 0x4b33e3
mov ecx, dword [esi]
mov edx, eax
call fcn.00459770
mov ecx, dword [esp + 0x94]
pop edi
pop esi
pop ebx
xor ecx, esp
call fcn.004d2eed
mov esp, ebp
pop ebp
ret