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

Disassembly:
sub esp, 0x5c
push ebx
mov ebx, dword [esp + 0x64]
xor ecx, ecx
push esi
xor eax, eax
mov dword [esp + 0x48], ecx
mov byte [esp + 0xa], 0
mov esi, dword [ebx + 8]
mov byte [esp + 0xb], 0
mov dword [esp + 0x18], eax
mov dword [esp + 0x44], eax
mov ecx, dword [esi + 0x6c]
mov dword [esp + 0x2c], esi
mov dword [esp + 0x4c], ecx
cmp dword [esi + 0x70], ecx
jg 0x4a2aba
push eax
push eax
push eax
push 0xf
push esi
call fcn.004b0300
add esp, 0x14
mov dword [esp + 0x4c], eax
jmp 0x4a2aed
lea eax, [ecx + 1]
mov dword [esi + 0x6c], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [esi + 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 edx, dword [esp + 0x78]
xorps xmm0, xmm0
push ebp
mov ebp, dword [esp + 0x70]
push edi
movlpd qword [esp + 0x64], xmm0
mov dword [esp + 0x18], 0
mov eax, dword [ebp]
mov ecx, dword [eax + 4]
movzx eax, byte [edx + 0x3c]
mov edx, dword [edx + 0x50]
mov dword [esp + 0x30], edx
mov edx, dword [esp + 0x68]
lea eax, [eax + eax*8]
mov dword [esp + 0x3c], ecx
lea ebp, [ecx + eax*8]
lea eax, [ebp + 8]
mov dword [esp + 0x1c], ebp
mov dword [esp + 0x58], eax
mov eax, dword [ebp + 0x18]
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0x74]
mov edi, dword [eax + 0x18]
mov eax, dword [eax + 0xc]
lea eax, [eax + eax*2]
shl eax, 4
add eax, edi
mov dword [esp + 0x48], eax
cmp edi, eax
jae 0x4a2e1d
mov eax, dword [esp + 0x64]
mov dword [esp + 0x14], edx
mov dword [esp + 0x28], eax
test byte [edi + 0xa], 2
mov ebp, dword [edi]
jne 0x4a2ccc
mov eax, dword [esp + 0x80]
movzx eax, byte [eax + 0x3c]
push eax
push ecx
push ebp
call fcn.004dc3f0
add esp, 0xc
test eax, eax
je 0x4a2cc8
test ebp, ebp
je 0x4a2ba4
push 0
push 0
push ebp
push dword [ebx]
call fcn.004a85e0
add esp, 0x10
mov ebp, eax
jmp 0x4a2ba6
xor ebp, ebp
mov edx, dword [esp + 0x20]
mov ecx, dword [ebx]
mov dword [esp + 0x44], ecx
test edx, edx
je 0x4a2cc4
test ebp, ebp
je 0x4a2cc8
mov eax, dword [edx + 4]
or eax, dword [ebp + 4]
and eax, 0x20000003
cmp eax, 0x20000000
jne 0x4a2c1d
cmp byte [ebx + 0xd8], 2
jae 0x4a2c1d
push edx
push ebx
call fcn.004db6c0
push ebp
push ebx
call fcn.004db6c0
push 0
lea eax, [esp + 0x78]
mov dword [esp + 0x78], 0x574d8c
push eax
push 0x9b
push dword [esp + 0x60]
mov dword [esp + 0x88], 1
call fcn.004d81d0
add esp, 0x20
mov dword [esp + 0x20], eax
jmp 0x4a2cc8
push 0
push 0x34
push ecx
call fcn.004d5b60
add esp, 0xc
mov dword [esp + 0x2c], eax
test eax, eax
je 0x4a2ca9
push 0x34
push 0
push eax
call fcn.005326d0
mov eax, dword [esp + 0x38]
or ecx, 0xffffffff
add esp, 0xc
mov word [eax + 0x22], cx
mov dword [eax + 0x10], ebp
mov byte [eax], 0x2c
mov edx, dword [ebp + 4]
and edx, 0x400208
or edx, dword [eax + 4]
mov dword [eax + 4], edx
mov ecx, dword [ebp + 0x18]
mov ebp, eax
mov eax, dword [esp + 0x20]
inc ecx
mov dword [ebp + 0x18], ecx
mov dword [ebp + 0xc], eax
mov eax, dword [eax + 4]
and eax, 0x400208
or eax, edx
mov dword [ebp + 4], eax
mov eax, dword [esp + 0x20]
mov eax, dword [eax + 0x18]
cmp eax, ecx
jl 0x4a2c8b
inc eax
mov dword [ebp + 0x18], eax
mov eax, dword [ebx]
mov eax, dword [eax + 0x84]
cmp dword [ebp + 0x18], eax
jle 0x4a2cc4
push eax
push str.Expression_tree_is_too_large__maximum_depth__d_
push ebx
call fcn.004d7b40
add esp, 0xc
jmp 0x4a2cc4
mov eax, dword [esp + 0x20]
push eax
push dword [ebx]
call fcn.004db740
push ebp
push dword [ebx]
call fcn.004db740
mov ebp, dword [esp + 0x3c]
add esp, 0x10
mov dword [esp + 0x20], ebp
mov edx, dword [esp + 0x14]
mov ebp, dword [esp + 0x1c]
mov eax, dword [edi + 0x14]
cmp eax, dword [ebp + 0x34]
jne 0x4a2e06
test byte [edi + 0xc], 0x82
je 0x4a2e06
test byte [ebp + 0x2c], 0x58
je 0x4a2d01
lea eax, [ebp + 8]
push eax
push edi
call fcn.004a2a40
add esp, 8
test eax, eax
je 0x4a2e02
mov ecx, dword [esp + 0x78]
mov eax, dword [edi + 0x24]
and ecx, dword [edi + 0x20]
and eax, dword [esp + 0x7c]
or ecx, eax
jne 0x4a2e02
mov ecx, dword [edi + 0x18]
test ecx, ecx
js 0x4a2e02
mov eax, dword [ebp + 0x18]
add ecx, ecx
mov eax, dword [eax + 4]
mov al, byte [eax + ecx*8 + 8]
mov byte [esp + 0x40], al
push dword [esp + 0x40]
push dword [edi]
call fcn.004e5120
add esp, 8
test eax, eax
je 0x4a2e02
mov edx, dword [edi + 0x18]
xor ebp, ebp
cmp edx, 0x40
jl 0x4a2d5c
mov dword [esp + 0x2c], SysReAllocString
jmp 0x4a2d75
mov eax, edx
xor ecx, ecx
bts ebp, eax
cmp eax, 0x20
cmovae ecx, ebp
xor ebp, ecx
cmp eax, 0x40
cmovae ecx, ebp
mov dword [esp + 0x2c], ecx
cmp byte [esp + 0x12], 0
jne 0x4a2da1
mov ecx, dword [esp + 0x38]
add edx, edx
mov eax, dword [ecx + 4]
push dword [eax + edx*8]
push dword [ecx]
push str.automatic_index_on__s__s_
push 0x11c
call fcn.004849d0
add esp, 0x10
mov byte [esp + 0x12], 1
mov eax, dword [esp + 0x2c]
mov ecx, ebp
mov edx, dword [esp + 0x14]
and eax, edx
and ecx, dword [esp + 0x28]
or ecx, eax
jne 0x4a2dfc
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x30]
inc eax
push eax
push ecx
push dword [ebx]
mov dword [esp + 0x50], eax
call fcn.005238c0
add esp, 0xc
test eax, eax
jne 0x4a377a
mov eax, dword [esp + 0x30]
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x14]
or dword [esp + 0x28], ebp
mov eax, dword [eax + 0x38]
or edx, dword [esp + 0x2c]
mov dword [esp + 0x14], edx
mov dword [eax + ecx*4], edi
mov eax, dword [esp + 0x44]
mov dword [esp + 0x18], eax
mov ebp, dword [esp + 0x1c]
jmp 0x4a2e06
mov edx, dword [esp + 0x14]
mov ecx, dword [esp + 0x3c]
add edi, 0x30
cmp edi, dword [esp + 0x48]
jb 0x4a2b63
mov edi, dword [esp + 0x28]
jmp 0x4a2e21
mov edi, dword [esp + 0x64]
mov ecx, dword [esp + 0x30]
mov eax, dword [esp + 0x18]
movzx eax, ax
mov word [ecx + 0x30], ax
mov word [ecx + 0x18], ax
mov eax, dword [esp + 0x38]
mov dword [ecx + 0x2c], 0x4241
cmp byte [eax + 0x2b], 2
jne 0x4a2e57
mov dword [esp + 0x28], 0xffffffff
mov dword [esp + 0x14], 0xffffffff
jmp 0x4a2e6f
not edx
not edi
and edi, dword [ebp + 0x40]
or edx, 0x80000000
and edx, dword [ebp + 0x44]
mov dword [esp + 0x28], edi
mov dword [esp + 0x14], edx
movzx ecx, word [eax + 0x22]
mov edx, 0x3f
xor edi, edi
mov dword [esp + 0x44], ecx
movzx eax, cx
cmp dx, cx
jge 0x4a2e8e
mov ebp, edx
mov dword [esp + 0x24], ebp
jmp 0x4a2e9c
xor edx, edx
movsx ebp, cx
mov dword [esp + 0x24], ebp
cmp dx, ax
jge 0x4a2ed8
mov esi, dword [esp + 0x14]
mov ebx, dword [esp + 0x28]
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, ebx
and ecx, esi
or edx, ecx
je 0x4a2ec7
inc dword [esp + 0x18]
inc edi
cmp edi, ebp
jl 0x4a2ea4
mov esi, dword [esp + 0x34]
mov ebx, dword [esp + 0x70]
mov ecx, dword [esp + 0x44]
mov eax, dword [esp + 0x1c]
cmp dword [eax + 0x44], 0
jg 0x4a2efa
jl 0x4a2eea
cmp dword [eax + 0x40], 0
jae 0x4a2efa
movsx eax, cx
mov ecx, dword [esp + 0x18]
add ecx, 0xffffffc1
add ecx, eax
mov dword [esp + 0x18], ecx
mov eax, dword [esp + 0x18]
mov ecx, dword [ebx]
movzx eax, ax
inc eax
movzx eax, ax
movsx ebp, ax
mov dword [esp + 0x3c], eax
lea edx, [ebp*4 + 7]
and edx, 0xfffffff8
lea eax, [ebp*4 + 9]
add eax, ebp
mov dword [esp + 0x40], edx
and eax, 0xfffffff8
add edx, 0x48
add eax, edx
mov dword [esp + 0x44], eax
cdq
push edx
push eax
test ecx, ecx
je 0x4a2f49
push ecx
call fcn.004d5b60
mov edi, eax
add esp, 0xc
mov dword [esp + 0x2c], edi
jmp 0x4a2f57
call fcn.004e8780
add esp, 8
mov dword [esp + 0x2c], eax
mov edi, eax
test edi, edi
je 0x4a377a
push dword [esp + 0x44]
push 0
push edi
call fcn.005326d0
mov ecx, dword [esp + 0x24]
lea eax, [edi + 0x48]
mov dword [edi + 0x20], eax
add esp, 0xc
add eax, dword [esp + 0x40]
xorps xmm0, xmm0
mov dword [edi + 8], eax
movlpd qword [esp + 0x64], xmm0
lea eax, [eax + ebp*2]
add eax, 2
mov dword [edi + 4], eax
lea eax, [eax + ebp*2]
mov ebp, dword [esp + 0x74]
mov dword [edi + 0x1c], eax
mov eax, dword [esp + 0x3c]
mov word [edi + 0x34], ax
movzx eax, cx
mov word [edi + 0x32], ax
mov eax, dword [esp + 0x30]
mov dword [eax + 0x20], edi
mov eax, dword [esp + 0x38]
mov dword [edi], str.auto_index
mov dword [edi + 0xc], eax
xor edi, edi
mov ebp, dword [ebp + 0x18]
cmp ebp, dword [esp + 0x48]
jae 0x4a3129
mov eax, dword [esp + 0x68]
mov esi, dword [esp + 0x24]
mov dword [esp + 0x40], eax
mov eax, dword [esp + 0x64]
mov dword [esp + 0x24], eax
mov edx, dword [esp + 0x1c]
mov eax, dword [ebp + 0x14]
mov dword [esp + 0x44], esi
cmp eax, dword [edx + 0x34]
jne 0x4a3114
test byte [ebp + 0xc], 0x82
je 0x4a3114
test byte [edx + 0x2c], 0x58
je 0x4a301e
push dword [esp + 0x58]
push ebp
call fcn.004a2a40
add esp, 8
test eax, eax
je 0x4a3114
mov edx, dword [esp + 0x1c]
mov ecx, dword [esp + 0x78]
mov eax, dword [ebp + 0x24]
and ecx, dword [ebp + 0x20]
and eax, dword [esp + 0x7c]
or ecx, eax
jne 0x4a3114
mov ecx, dword [ebp + 0x18]
test ecx, ecx
js 0x4a3114
mov eax, dword [edx + 0x18]
add ecx, ecx
mov eax, dword [eax + 4]
mov al, byte [eax + ecx*8 + 8]
mov byte [esp + 0x5c], al
push dword [esp + 0x5c]
push dword [ebp]
call fcn.004e5120
add esp, 8
test eax, eax
je 0x4a3114
mov eax, dword [ebp + 0x18]
xor edx, edx
movzx ecx, ax
mov dword [esp + 0x60], ecx
cmp eax, 0x40
jl 0x4a3082
mov eax, SysReAllocString
mov dword [esp + 0x3c], eax
jmp 0x4a309b
bts edx, eax
xor ecx, ecx
cmp eax, 0x20
cmovae ecx, edx
xor edx, ecx
cmp eax, 0x40
cmovae ecx, edx
mov dword [esp + 0x3c], ecx
mov eax, ecx
and eax, dword [esp + 0x40]
mov ecx, edx
and ecx, dword [esp + 0x24]
or ecx, eax
mov esi, dword [esp + 0x44]
jne 0x4a3114
mov eax, dword [esp + 0x40]
or eax, dword [esp + 0x3c]
mov esi, dword [esp + 0x2c]
mov ecx, dword [ebp]
or dword [esp + 0x24], edx
mov edx, dword [esp + 0x60]
mov dword [esp + 0x40], eax
mov eax, dword [esi + 4]
push ecx
push ebx
mov dword [esp + 0x6c], ecx
mov word [eax + edi*2], dx
call fcn.004db4c0
add esp, 8
test eax, eax
je 0x4a30e5
mov ecx, dword [eax]
jmp 0x4a30ea
mov ecx, str.BINARY
mov eax, dword [esi + 0x20]
mov dword [eax + edi*4], ecx
inc edi
mov eax, dword [esp + 0x64]
mov ecx, dword [esp + 0x44]
mov esi, ecx
mov eax, dword [eax + 0xc]
test eax, eax
je 0x4a3114
push eax
call fcn.004d8100
add esp, 4
cmp al, 0x42
je 0x4a3114
mov byte [esp + 0x13], 1
add ebp, 0x30
cmp ebp, dword [esp + 0x48]
jb 0x4a2fe1
mov dword [esp + 0x24], esi
mov esi, dword [esp + 0x34]
xor ebp, ebp
cmp dword [esp + 0x24], ebp
jle 0x4a3182
mov esi, dword [esp + 0x24]
mov ebx, dword [esp + 0x2c]
nop dword [eax]
xor edx, edx
xor ecx, ecx
mov eax, ebp
bts edx, eax
cmp eax, 0x20
cmovae ecx, edx
xor edx, ecx
cmp eax, 0x40
cmovae ecx, edx
and edx, dword [esp + 0x28]
and ecx, dword [esp + 0x14]
or edx, ecx
je 0x4a3175
mov eax, dword [ebx + 4]
mov word [eax + edi*2], bp
mov eax, dword [ebx + 0x20]
mov dword [eax + edi*4], str.BINARY
inc edi
inc ebp
cmp ebp, esi
jl 0x4a3140
mov esi, dword [esp + 0x34]
mov ebx, dword [esp + 0x70]
mov eax, dword [esp + 0x1c]
cmp dword [eax + 0x44], 0
jg 0x4a31cd
jl 0x4a3194
cmp dword [eax + 0x40], 0
jae 0x4a31cd
mov edx, dword [esp + 0x38]
mov eax, 0x3f
mov ebp, dword [esp + 0x2c]
cmp ax, word [edx + 0x22]
jge 0x4a31d1
mov ecx, eax
nop dword [eax]
mov eax, dword [ebp + 4]
mov word [eax + edi*2], cx
inc ecx
mov eax, dword [ebp + 0x20]
mov dword [eax + edi*4], str.BINARY
inc edi
movsx eax, word [edx + 0x22]
cmp ecx, eax
jl 0x4a31b0
jmp 0x4a31d1
mov ebp, dword [esp + 0x2c]
mov eax, dword [ebp + 4]
or ecx, 0xffffffff
mov edx, dword [esp + 0x18]
inc edx
mov word [eax + edi*2], cx
mov eax, dword [ebp + 0x20]
mov ecx, dword [esp + 0x80]
mov dword [eax + edi*4], str.BINARY
mov eax, dword [ebx + 0x28]
mov dword [ecx + 8], eax
inc dword [ebx + 0x28]
mov eax, dword [ecx + 8]
mov ecx, dword [esi + 0x6c]
mov dword [esp + 0x64], eax
cmp dword [esi + 0x70], ecx
jg 0x4a321a
push 0
push edx
push eax
push 0x74
push esi
call fcn.004b0300
add esp, 0x14
jmp 0x4a324d
lea eax, [ecx + 1]
mov dword [esi + 0x6c], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [esi + 0x68]
mov esi, dword [esp + 0x64]
mov dword [eax + ecx*4 + 4], esi
mov esi, dword [esp + 0x34]
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 [ebx + 8]
push ebp
push ebx
mov dword [esp + 0x6c], eax
call fcn.004e7650
mov edx, eax
add esp, 8
test edx, edx
je 0x4a329f
mov ebp, dword [esp + 0x64]
mov eax, dword [ebp]
cmp byte [eax + 0x57], 0
je 0x4a328d
cmp dword [eax + 0x210], 0
jne 0x4a329f
add dword [edx], 0xffffffff
jne 0x4a329f
push edx
push dword [edx + 0xc]
call fcn.004d5c80
add esp, 8
jmp 0x4a329f
mov eax, dword [ebp + 0x6c]
lea ecx, [eax + eax*4]
mov eax, dword [ebp + 0x68]
mov byte [eax + ecx*4 - 0x13], 0xf8
mov dword [eax + ecx*4 - 4], edx
mov eax, dword [ebx]
test dword [eax + 0x50], 0x80000
jne 0x4a331d
cmp byte [esp + 0x13], 0
je 0x4a331d
mov eax, dword [esp + 0x74]
mov ebp, dword [esp + 0x80]
push ebp
push dword [eax]
push ebx
call fcn.00510fa0
inc dword [ebx + 0x2c]
add esp, 0xc
mov edx, dword [ebx + 0x2c]
mov dword [ebp + 0x34], edx
mov ecx, dword [esi + 0x6c]
cmp dword [esi + 0x70], ecx
jg 0x4a32ee
push 0
push edx
push 0x2710
push 0x4d
push esi
call fcn.004b0300
add esp, 0x14
jmp 0x4a331d
lea eax, [ecx + 1]
mov dword [esi + 0x6c], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [esi + 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 ebp, dword [esp + 0x1c]
test byte [ebp + 0x30], 0x20
je 0x4a3420
mov ecx, dword [esi + 0x6c]
mov edx, dword [ebp + 0x24]
mov dword [esp + 0x74], edx
mov dword [esp + 0x4c], ecx
cmp dword [esi + 0x70], ecx
jg 0x4a335c
push 0
push 0
push 0
push 0x47
push esi
call fcn.004b0300
mov edx, dword [esp + 0x88]
add esp, 0x14
mov dword [esp + 0x4c], eax
jmp 0x4a3393
mov ebx, dword [esp + 0x70]
lea eax, [ecx + 1]
mov dword [esi + 0x6c], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [esi + 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 ecx, dword [esi + 0x6c]
mov ebp, dword [ebp + 0x20]
cmp dword [esi + 0x70], ecx
jg 0x4a33b6
push ebp
push 0
push edx
push 0xb
push esi
call fcn.004b0300
mov edx, dword [esp + 0x88]
add esp, 0x14
jmp 0x4a33e5
mov ebx, dword [esp + 0x70]
lea eax, [ecx + 1]
mov dword [esi + 0x6c], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [esi + 0x68]
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 + 0xc], ebp
mov dword [eax + ecx*4 + 0x10], 0
mov ebp, dword [esi + 0x6c]
cmp dword [esi + 0x70], ebp
jg 0x4a3401
push 0
push 0
push edx
push 0xc
push esi
call fcn.004b0300
add esp, 0x14
mov ebp, eax
jmp 0x4a347f
mov ebx, dword [esp + 0x70]
lea eax, [ebp + 1]
mov dword [esi + 0x6c], eax
lea ecx, [ebp*4]
mov eax, dword [esi + 0x68]
add ecx, ebp
mov dword [eax + ecx*4], 0xc
jmp 0x4a3463
mov eax, dword [esp + 0x80]
mov ebp, dword [esi + 0x6c]
mov edx, dword [eax + 4]
cmp dword [esi + 0x70], ebp
jg 0x4a3446
push 0
push 0
push edx
push 0x24
push esi
call fcn.004b0300
add esp, 0x14
mov ebp, eax
jmp 0x4a347f
lea eax, [ebp + 1]
mov dword [esi + 0x6c], eax
lea ecx, [ebp*4]
mov eax, dword [esi + 0x68]
add ecx, ebp
mov esi, dword [esp + 0x34]
mov dword [eax + ecx*4], 0x24
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 + 0x20]
test eax, eax
je 0x4a34a9
dec dword [ebx + 0x38]
mov ecx, dword [ebx + 0x38]
push 0x10
push ecx
push eax
push ebx
mov dword [esp + 0x60], ecx
call fcn.004dba00
mov ecx, dword [esp + 0x40]
add esp, 0x10
or dword [ecx + 0x2c], 0x20000
mov al, byte [ebx + 0x13]
test al, al
jne 0x4a34b8
inc dword [ebx + 0x2c]
mov eax, dword [ebx + 0x2c]
jmp 0x4a34c7
dec al
mov byte [ebx + 0x13], al
movzx eax, al
mov eax, dword [ebx + eax*4 + 0xa0]
push 0
push 0
push 0
push 0
push eax
mov dword [esp + 0x88], eax
mov eax, dword [esp + 0x94]
push dword [eax + 4]
push dword [esp + 0x44]
push ebx
call fcn.004e3270
mov edx, dword [esp + 0xa0]
add esp, 0x20
mov dword [esp + 0x44], eax
mov edx, dword [edx + 0x34]
test edx, edx
je 0x4a355f
mov ecx, dword [esp + 0x30]
movzx ecx, word [ecx + 0x18]
mov dword [esp + 0x48], ecx
mov ecx, dword [esi + 0x6c]
cmp dword [esi + 0x70], ecx
jg 0x4a352c
push dword [esp + 0x48]
push eax
push 0
push edx
push 0xb4
push esi
call fcn.00497760
add esp, 0x18
jmp 0x4a355f
mov ebx, dword [esp + 0x70]
lea eax, [ecx + 1]
mov dword [esi + 0x6c], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [esi + 0x68]
mov dword [eax + ecx*4 + 4], edx
mov edx, dword [esp + 0x44]
mov dword [eax + ecx*4 + 0xc], edx
mov edx, dword [esp + 0x48]
mov dword [eax + ecx*4], 0xfdb4
mov dword [eax + ecx*4 + 8], 0
mov dword [eax + ecx*4 + 0x10], edx
mov eax, dword [esp + 0x80]
mov ecx, dword [esi + 0x6c]
mov eax, dword [eax + 8]
mov dword [esp + 0x64], eax
cmp dword [esi + 0x70], ecx
jg 0x4a358d
mov edx, dword [esp + 0x74]
push 0
push edx
push eax
push 0x8a
push esi
call fcn.004b0300
add esp, 0x14
jmp 0x4a35c0
mov edx, dword [esp + 0x64]
lea eax, [ecx + 1]
mov dword [esi + 0x6c], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [esi + 0x68]
mov dword [eax + ecx*4 + 4], edx
mov edx, dword [esp + 0x74]
mov dword [eax + ecx*4], 0x8a
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 + 0x6c]
test eax, eax
jle 0x4a35d7
lea ecx, [eax + eax*4]
mov edx, 0x10
mov eax, dword [esi + 0x68]
mov word [eax + ecx*4 - 0x12], dx
cmp dword [esp + 0x20], 0
je 0x4a3605
mov ecx, dword [esi + 0xc]
mov edx, dword [esp + 0x50]
not edx
mov eax, dword [ecx + 0x3c]
add eax, dword [ecx + 0x38]
jns 0x4a35fc
push edx
push esi
push ecx
call fcn.004c4330
add esp, 0xc
jmp 0x4a3605
mov ecx, dword [ecx + 0x40]
mov eax, dword [esi + 0x6c]
mov dword [ecx + edx*4], eax
mov eax, dword [esp + 0x1c]
test byte [eax + 0x30], 0x20
je 0x4a36ac
mov eax, dword [esi]
cmp byte [eax + 0x57], 0
je 0x4a3622
mov ecx, 0x590c20
jmp 0x4a362f
mov eax, dword [esp + 0x4c]
lea ecx, [eax + eax*4]
mov eax, dword [esi + 0x68]
lea ecx, [eax + ecx*4]
mov eax, dword [esp + 0x44]
add eax, edi
mov edi, dword [esp + 0x1c]
mov dword [ecx + 8], eax
mov eax, dword [esp + 0x80]
push dword [eax + 8]
push dword [edi + 0x28]
push dword [eax + 4]
push ebp
push ebx
call fcn.005169d0
mov ecx, dword [esi + 0x6c]
add esp, 0x14
cmp dword [esi + 0x70], ecx
jg 0x4a3677
push 0
push ebp
push 0
push 9
push esi
call fcn.004b0300
add esp, 0x14
and dword [edi + 0x30], 0xffffffdf
jmp 0x4a3718
lea eax, [ecx + 1]
mov dword [esi + 0x6c], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [esi + 0x68]
mov dword [eax + ecx*4], 9
mov dword [eax + ecx*4 + 4], 0
mov dword [eax + ecx*4 + 8], ebp
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
and dword [edi + 0x30], 0xffffffdf
jmp 0x4a3718
mov eax, dword [esp + 0x80]
lea edx, [ebp + 1]
mov ecx, dword [esi + 0x6c]
mov edi, dword [eax + 4]
cmp dword [esi + 0x70], ecx
jg 0x4a36d2
push 0
push edx
push edi
push 0x27
push esi
call fcn.004b0300
add esp, 0x14
jmp 0x4a3701
mov ebx, dword [esp + 0x70]
lea eax, [ecx + 1]
mov dword [esi + 0x6c], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [esi + 0x68]
mov dword [eax + ecx*4], 0x27
mov dword [eax + ecx*4 + 4], edi
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 + 0x6c]
test eax, eax
jle 0x4a3718
lea ecx, [eax + eax*4]
mov edx, 3
mov eax, dword [esi + 0x68]
mov word [eax + ecx*4 - 0x12], dx
mov eax, dword [esi]
mov edx, dword [esi + 0x6c]
cmp byte [eax + 0x57], 0
je 0x4a372a
mov eax, 0x590c20
jmp 0x4a3739
mov eax, dword [esi + 0x68]
lea ecx, [ebp*4]
add ecx, ebp
lea eax, [eax + ecx*4]
mov ecx, dword [esp + 0x74]
mov dword [eax + 8], edx
test ecx, ecx
je 0x4a3758
mov al, byte [ebx + 0x13]
cmp al, 8
jae 0x4a3758
movzx eax, al
mov dword [ebx + eax*4 + 0xa0], ecx
inc byte [ebx + 0x13]
mov eax, dword [esi]
mov edx, dword [esi + 0x6c]
cmp byte [eax + 0x57], 0
je 0x4a376a
mov eax, 0x590c20
jmp 0x4a3777
mov eax, dword [esp + 0x54]
lea ecx, [eax + eax*4]
mov eax, dword [esi + 0x68]
lea eax, [eax + ecx*4]
mov dword [eax + 8], edx
mov eax, dword [esp + 0x20]
pop edi
pop ebp
test eax, eax
je 0x4a378f
push eax
push dword [ebx]
call fcn.004db740
add esp, 8
pop esi
pop ebx
add esp, 0x5c
ret