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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x94
mov eax, dword [ebp + 0x10]
push ebx
mov ebx, dword [ebp + 8]
push esi
xor edx, edx
push edi
mov edi, dword [ebx + 8]
mov dword [esp + 0x34], edi
mov dword [esp + 0x38], eax
mov dword [esp + 0x10], edx
mov dword [esp + 0x20], edx
mov dword [esp + 0x30], edx
cmp edi, edx
je 0x4a6c8e
mov esi, dword [ebp + 0xc]
lea eax, [edx + 0x65]
cmp esi, edx
je 0x4a60c3
movzx eax, byte [esi]
lea ecx, [eax - 0x13]
mov dword [esp + 0x18], eax
cmp ecx, 0x8f
ja case.0x4a60dd.21
movzx ecx, byte [ecx + 0x4a704c]
jmp dword [ecx*4 + 0x4a6fdc]
movsx ecx, word [esi + 0x22]
mov eax, dword [esi + 0x28]
cmp byte [eax], 0
lea edx, [ecx + ecx*2]
mov ecx, dword [eax + 0x1c]
lea ecx, [ecx + edx*8]
jne 0x4a6103
mov eax, dword [ecx + 0x10]
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
cmp byte [eax + 1], 0
je 0x4a6129
mov esi, dword [ebp + 0x10]
mov edx, dword [ecx + 0xc]
mov eax, dword [eax + 8]
push esi
push edx
push eax
push 0x60
push edi
call fcn.0048e3e0
add esp, 0x14
mov eax, esi
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
xor edx, edx
mov eax, dword [esi + 0x1c]
cmp eax, edx
jge 0x4a6149
mov ecx, dword [ebx + 0x38]
cmp ecx, edx
jge 0x4a6146
movsx eax, word [esi + 0x20]
sub eax, ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
lea eax, [ecx - 1]
mov ecx, esi
movzx edx, byte [ecx + 0x26]
push edx
mov edx, dword [ebp + 0x10]
push edx
push eax
movsx eax, word [ecx + 0x20]
mov ecx, dword [ecx + 0x2c]
push eax
push ecx
mov esi, ebx
call fcn.004a5e70
add esp, 0x14
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov edi, dword [ebp + 0x10]
push edi
push ebx
xor ecx, ecx
mov eax, esi
call fcn.004a59f0
add esp, 8
mov eax, edi
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov ebx, dword [ebp + 0x10]
mov edx, esi
mov ecx, dword [edx + 8]
push ebx
push 0
mov esi, edi
call fcn.004a5910
add esp, 8
mov eax, ebx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov edi, dword [ebp + 0x10]
mov eax, esi
mov ebx, dword [eax + 8]
mov esi, dword [esp + 0x34]
mov eax, edi
call fcn.0048e450
mov eax, edi
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov esi, dword [ebp + 0x10]
push 0
push esi
push 0
push 0x3b
push edi
call fcn.0048e3e0
add esp, 0x14
mov eax, esi
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov ecx, esi
mov edi, dword [ecx + 8]
add edi, 2
mov eax, edi
call fcn.004722b0
mov ebx, dword [esp + 0x34]
lea esi, [eax - 1]
mov eax, dword [ebx]
push esi
push eax
call fcn.00473350
mov edx, dword [ebp + 0x10]
mov edi, eax
push 0
push edx
mov eax, esi
cdq
sub eax, edx
sar eax, 1
push eax
push 0x3d
push ebx
call fcn.0048e3e0
mov ecx, dword [ebx]
add esp, 0x1c
cmp byte [ecx + 0x45], 0
je 0x4a6237
mov eax, edi
mov edx, 0xfffffff9
call fcn.0048ed10
mov eax, dword [ebp + 0x10]
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
test eax, eax
jns 0x4a6242
mov eax, dword [ebx + 0x88]
dec eax
mov ecx, dword [ebx + 0x58]
lea eax, [eax + eax*4]
cmp byte [ecx + eax*4 + 1], 0
lea ecx, [ecx + eax*4]
je 0x4a626b
push edi
push ebx
mov eax, 0xfffffff9
call fcn.0048ee80
mov eax, dword [ebp + 0x10]
add esp, 8
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
test edi, edi
je 0x4a6276
mov dword [ecx + 0x10], edi
mov byte [ecx + 1], 0xf9
mov eax, dword [ebp + 0x10]
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov edx, dword [ebp + 0x10]
movsx eax, word [esi + 0x20]
push 0
push edx
push eax
push 0x3e
push edi
call fcn.0048e3e0
mov ecx, dword [esi + 8]
add esp, 0x14
cmp byte [ecx + 1], 0
je 0x4a62c2
mov ebx, dword [ebx + 0x1a4]
mov edx, esi
movsx esi, word [edx + 0x20]
mov ecx, ebx
call fcn.00473820
or edx, 0xffffffff
mov ecx, edi
mov dword [ebx], 0
call fcn.0048eff0
mov eax, dword [ebp + 0x10]
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov eax, dword [esi + 0x1c]
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov eax, dword [ebp + 0x10]
mov ecx, dword [esi + 0xc]
push eax
push ecx
push ebx
call fcn.004a6080
mov esi, eax
add esp, 0xc
cmp esi, dword [ebp + 0x10]
je 0x4a6303
mov edx, dword [ebp + 0x10]
push 0
push edx
push esi
push 0x41
push edi
call fcn.0048e3e0
mov esi, dword [ebp + 0x10]
add esp, 0x14
mov eax, dword [ebp + 0xc]
mov edx, dword [eax + 8]
xor edi, edi
call fcn.004ad770
mov ecx, dword [ebp + 0x10]
mov edx, dword [esp + 0x34]
movsx eax, al
push edi
push eax
push ecx
push 0x49
push edx
call fcn.0048e3e0
add esp, 0x14
push 1
mov edi, esi
mov eax, ebx
call fcn.004a5c20
add esp, 4
mov eax, esi
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
xor ecx, ecx
cmp eax, 0x48
sete cl
mov dword [esp + 0x30], 0x80
add ecx, 0x4d
mov dword [esp + 0x18], ecx
mov edi, dword [esi + 0xc]
mov ecx, edi
call fcn.004a11f0
test eax, eax
je 0x4a6387
mov edx, dword [esp + 0x30]
mov eax, dword [esp + 0x18]
mov ecx, dword [ebp + 0x10]
push edx
push eax
push ecx
mov eax, esi
call fcn.004a1430
mov eax, dword [esp + 0x44]
add esp, 0xc
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
lea edx, [esp + 0x10]
push edx
mov eax, edi
mov ecx, ebx
call fcn.004a71a0
mov dword [esp + 0x20], eax
lea eax, [esp + 0x24]
add esp, 4
push eax
mov eax, dword [esi + 0x10]
mov ecx, ebx
call fcn.004a71a0
mov ecx, dword [esp + 0x34]
mov edx, dword [esp + 0x20]
add esp, 4
or ecx, 0x20
push ecx
mov ecx, dword [ebp + 0x10]
push ecx
push eax
mov eax, dword [esp + 0x24]
push edx
push eax
mov eax, dword [esi + 0x10]
push ebx
mov ecx, edi
call fcn.004a10c0
add esp, 0x18
jmp 0x4a6415
mov eax, dword [esi + 0xc]
lea ecx, [esp + 0x10]
push ecx
mov ecx, ebx
call fcn.004a71a0
lea edx, [esp + 0x24]
add esp, 4
mov dword [esp + 0x1c], eax
mov eax, dword [esi + 0x10]
push edx
mov ecx, ebx
call fcn.004a71a0
mov ecx, dword [ebp + 0x10]
mov edx, dword [esp + 0x20]
add esp, 4
push ecx
push edx
push eax
mov eax, dword [esp + 0x24]
push eax
push edi
call fcn.0048e3e0
add esp, 0x14
mov esi, dword [esp + 0x10]
test esi, esi
je 0x4a6454
mov dl, byte [ebx + 0x13]
cmp dl, 8
jae 0x4a6454
xor eax, eax
lea ecx, [ebx + 0x94]
cmp byte [ebx + 0x19], al
jbe 0x4a6447
cmp dword [ecx + 0xc], esi
je 0x4a6fc1
movzx edi, byte [ebx + 0x19]
inc eax
add ecx, 0x14
cmp eax, edi
jl 0x4a6432
movzx edx, dl
mov dword [ebx + edx*4 + 0x15c], esi
inc byte [ebx + 0x13]
mov esi, dword [esp + 0x20]
test esi, esi
je 0x4a6493
mov dl, byte [ebx + 0x13]
cmp dl, 8
jae 0x4a6493
xor eax, eax
lea ecx, [ebx + 0x94]
cmp byte [ebx + 0x19], al
jbe 0x4a6486
cmp dword [ecx + 0xc], esi
je 0x4a6fca
movzx edi, byte [ebx + 0x19]
inc eax
add ecx, 0x14
cmp eax, edi
jl 0x4a6471
movzx eax, dl
mov dword [ebx + eax*4 + 0x15c], esi
inc byte [ebx + 0x13]
mov eax, dword [esp + 0x38]
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov eax, dword [esi + 0xc]
mov cl, byte [eax]
cmp cl, 0x86
jne 0x4a6597
test dword [eax + 4], 0x400
je 0x4a64d6
mov ecx, dword [ebp + 0x10]
mov edx, dword [eax + 8]
push 0
push ecx
neg edx
push edx
push 0x38
push edi
call fcn.0048e3e0
mov eax, dword [ebp + 0x10]
add esp, 0x14
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov edi, dword [eax + 8]
lea eax, [esp + 0x38]
push eax
call fcn.00472d50
add esp, 4
cmp eax, 1
je 0x4a6547
mov edx, dword [esp + 0x38]
mov ecx, dword [esp + 0x3c]
test edx, edx
jne 0x4a64ff
cmp ecx, 0x80000000
je 0x4a6547
cmp eax, 2
jne 0x4a6516
mov dword [esp + 0x38], 0
mov dword [esp + 0x3c], accept
jmp 0x4a6525
neg edx
adc ecx, 0
neg ecx
mov dword [esp + 0x38], edx
mov dword [esp + 0x3c], ecx
mov ecx, dword [ebp + 0x10]
mov ebx, dword [esp + 0x34]
push 0xfffffffffffffff2
push ecx
push 0x39
lea eax, [esp + 0x44]
call fcn.0048e650
mov eax, dword [ebp + 0x10]
add esp, 0xc
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
push 2
push 0x546a5c
push edi
call fcn.00472620
add esp, 0xc
test eax, eax
jne 0x4a6579
push edi
push 0x52b20c
push str.hex_literal_too_big:__s_s
push ebx
call fcn.00472420
mov eax, dword [ebp + 0x10]
add esp, 0x10
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov edx, dword [ebp + 0x10]
mov esi, dword [esp + 0x34]
push edx
push 1
mov ecx, edi
call fcn.004a5910
mov eax, dword [ebp + 0x10]
add esp, 8
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
cmp cl, 0x84
jne 0x4a65b8
mov ebx, dword [ebp + 0x10]
mov ecx, dword [eax + 8]
push ebx
push 1
mov esi, edi
call fcn.004a5910
add esp, 8
mov eax, ebx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
lea eax, [esp + 0x10]
push eax
lea eax, [esp + 0x44]
mov ecx, ebx
mov byte [esp + 0x44], 0x86
mov dword [esp + 0x48], 0x4400
mov dword [esp + 0x4c], edx
call fcn.004a71a0
lea ecx, [esp + 0x24]
add esp, 4
mov dword [esp + 0x1c], eax
mov eax, dword [esi + 0xc]
push ecx
mov ecx, ebx
call fcn.004a71a0
mov edx, dword [ebp + 0x10]
mov ecx, dword [esp + 0x20]
add esp, 4
push edx
push ecx
push eax
push 0x59
jmp 0x4a640c
mov eax, dword [esi + 0xc]
lea edx, [esp + 0x10]
push edx
mov ecx, ebx
call fcn.004a71a0
mov ecx, dword [ebp + 0x10]
mov edx, dword [esp + 0x1c]
add esp, 4
push 0
push ecx
push eax
push edx
jmp 0x4a640c
mov eax, dword [ebp + 0x10]
push 0
push eax
push 1
push 0x38
push edi
call fcn.0048e3e0
mov eax, dword [esi + 0xc]
lea ecx, [esp + 0x24]
add esp, 0x14
push ecx
mov ecx, ebx
call fcn.004a71a0
mov edx, dword [esp + 0x1c]
add esp, 4
push 0
push 0
push eax
push edx
push edi
call fcn.0048e3e0
add esp, 0x14
push 0
mov esi, eax
mov eax, dword [ebp + 0x10]
push eax
push 0
push 0x38
push edi
call fcn.0048e3e0
add esp, 0x14
mov eax, esi
mov edx, edi
call fcn.0048eb50
jmp 0x4a6415
mov eax, dword [esi + 0x28]
cmp eax, edx
jne 0x4a66a5
mov ecx, dword [esi + 8]
push ecx
push str.misuse_of_aggregate:__s__
push ebx
call fcn.00472420
mov eax, dword [esp + 0x44]
add esp, 0xc
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
movsx edx, word [esi + 0x22]
mov eax, dword [eax + 0x28]
add edx, edx
mov eax, dword [eax + edx*8 + 8]
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov eax, dword [ebx]
mov cl, byte [eax + 0x42]
mov dword [esp + 0x20], edx
mov dword [esp + 0x30], eax
mov byte [esp + 0x14], cl
mov dword [esp + 0x10], edx
cmp byte [ebx + 0x17], dl
je 0x4a66f6
mov eax, esi
call fcn.004a3280
test eax, eax
je 0x4a66f4
mov edx, esi
push 0xffffffffffffffff
push edx
mov edi, ebx
call fcn.004a70e0
add esp, 8
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
xor edx, edx
test dword [esi + 4], 0x4000
je 0x4a67e0
mov dword [esp + 0x28], edx
mov dword [esp + 0x18], edx
mov ecx, dword [esp + 0x14]
mov eax, dword [esi + 8]
mov edx, dword [esp + 0x18]
push 0
push ecx
push edx
push eax
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0x40]
push eax
call fcn.004b3180
add esp, 0x14
mov dword [esp + 0x2c], eax
test eax, eax
je 0x4a6a43
cmp dword [eax + 0x10], 0
jne 0x4a6a43
movzx eax, word [eax + 2]
test eax, 0x200
je 0x4a67fa
mov eax, edi
call fcn.0048e7d0
mov ecx, dword [ebp + 0x10]
mov esi, dword [esp + 0x28]
mov edx, dword [esi + 8]
push ecx
push edx
push ebx
mov dword [esp + 0x30], eax
call fcn.004a7280
mov eax, dword [esp + 0x24]
add esp, 0xc
cmp eax, 1
jle 0x4a67c8
mov edi, dword [ebp + 0x10]
add esi, 0x20
dec eax
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x24]
mov ecx, dword [esp + 0x34]
push 0
push eax
push edi
push 0x4c
push ecx
call fcn.0048e3e0
add esp, 0x14
push 1
mov eax, ebx
call fcn.004a5c20
inc dword [ebx + 0x3c]
mov edx, dword [esi]
add esp, 4
push edi
push edx
push ebx
call fcn.004a7280
add esp, 0xc
mov eax, ebx
call fcn.004a5cb0
add esi, 0x18
dec dword [esp + 0x14]
jne 0x4a6785
mov edx, dword [esp + 0x24]
mov ecx, dword [esp + 0x34]
call fcn.0048e830
mov eax, dword [esp + 0x38]
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov eax, dword [esi + 0x14]
mov dword [esp + 0x28], eax
cmp eax, edx
je 0x4a6707
mov eax, dword [eax]
mov dword [esp + 0x18], eax
jmp 0x4a670b
test eax, 0x400
je 0x4a681d
mov eax, dword [ebp + 0x10]
mov ecx, dword [esp + 0x28]
mov edx, dword [ecx + 8]
push eax
push edx
push ebx
call fcn.004a6080
add esp, 0xc
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov eax, dword [esp + 0x18]
mov dword [esp + 0x24], 0
mov dword [esp + 0x14], 1
test eax, eax
jle 0x4a68a6
mov ecx, dword [esp + 0x28]
add ecx, 8
mov dword [esp + 0x1c], ecx
cmp dword [esp + 0x24], 0x20
jge 0x4a6862
mov edx, dword [esp + 0x1c]
mov eax, dword [edx]
call fcn.004a3240
test eax, eax
je 0x4a685e
mov eax, dword [esp + 0x14]
or dword [esp + 0x20], eax
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x2c]
test byte [ecx + 2], 0x20
je 0x4a688a
cmp dword [esp + 0x10], 0
jne 0x4a688a
mov edx, dword [esp + 0x1c]
mov eax, dword [edx]
push ebx
call fcn.004a0ec0
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x1c]
add esp, 4
mov ecx, dword [esp + 0x24]
mov edx, dword [esp + 0x14]
add dword [esp + 0x1c], 0x18
inc ecx
rol edx, 1
mov dword [esp + 0x24], ecx
mov dword [esp + 0x14], edx
cmp ecx, eax
jl 0x4a6840
cmp dword [esp + 0x28], 0
je 0x4a6921
cmp dword [esp + 0x20], 0
je 0x4a68c5
mov ecx, dword [ebx + 0x2c]
lea edx, [ecx + 1]
add ecx, eax
mov dword [esp + 0x1c], edx
mov dword [ebx + 0x2c], ecx
jmp 0x4a68d5
mov esi, eax
mov ecx, ebx
call fcn.004a8640
mov esi, dword [ebp + 0xc]
mov dword [esp + 0x1c], eax
mov edx, dword [esp + 0x2c]
test byte [edx + 2], 0xc0
je 0x4a68fb
mov eax, dword [esp + 0x28]
mov eax, dword [eax + 8]
mov cl, byte [eax]
cmp cl, 0x98
je 0x4a68f2
cmp cl, 0x9a
jne 0x4a68fb
mov cl, byte [edx + 2]
and cl, 0xc0
mov byte [eax + 0x26], cl
mov edx, dword [esp + 0x1c]
mov eax, dword [esp + 0x28]
inc dword [ebx + 0x3c]
push 3
push 0
push edx
push ebx
call fcn.004a7340
add esp, 0x10
mov eax, ebx
call fcn.004a5cb0
mov eax, dword [esp + 0x18]
jmp 0x4a6929
mov dword [esp + 0x1c], 0
cmp eax, 2
jl 0x4a6943
test byte [esi + 4], 0x80
je 0x4a6943
mov edx, dword [esp + 0x28]
push eax
mov eax, dword [esp + 0x30]
push eax
mov eax, dword [edx + 0x20]
jmp 0x4a6954
test eax, eax
jle 0x4a6965
mov edx, dword [esp + 0x28]
push eax
mov eax, dword [esp + 0x30]
push eax
mov eax, dword [edx + 8]
mov ecx, dword [esp + 0x38]
push ecx
call fcn.004d2b80
mov dword [esp + 0x38], eax
add esp, 0xc
mov eax, dword [esp + 0x2c]
test byte [eax + 2], 0x20
je 0x4a69ed
cmp dword [esp + 0x10], 0
jne 0x4a6985
mov ecx, dword [esp + 0x30]
mov edx, dword [ecx + 8]
mov dword [esp + 0x10], edx
push 0
push 0
push 0
push 0x44
push edi
call fcn.0048e3e0
mov ecx, dword [edi]
add esp, 0x14
cmp byte [ecx + 0x45], 0
je 0x4a69ae
mov eax, dword [esp + 0x10]
mov edx, 0xfffffffe
call fcn.0048ed10
jmp 0x4a69ed
test eax, eax
jns 0x4a69b9
mov eax, dword [edi + 0x88]
dec eax
mov ecx, dword [edi + 0x58]
lea eax, [eax + eax*4]
cmp byte [ecx + eax*4 + 1], 0
lea ecx, [ecx + eax*4]
je 0x4a69de
mov edx, dword [esp + 0x10]
push edx
push edi
mov eax, 0xfffffffe
call fcn.0048ee80
add esp, 8
jmp 0x4a69ed
mov eax, dword [esp + 0x10]
test eax, eax
je 0x4a69ed
mov dword [ecx + 0x10], eax
mov byte [ecx + 1], 0xfe
mov ecx, dword [ebx + 0x38]
mov eax, dword [esp + 0x2c]
mov esi, dword [esp + 0x20]
neg ecx
sbb ecx, ecx
push 0xfffffffffffffff8
push eax
mov eax, dword [ebp + 0x10]
add ecx, 0xa2
push ecx
mov ecx, dword [esp + 0x28]
mov edx, esi
call fcn.0048e620
mov ebx, dword [esp + 0x24]
movzx edx, bl
add esp, 0xc
mov ecx, edi
call fcn.0048eb30
test ebx, ebx
je 0x4a6a39
test esi, esi
jne 0x4a6a39
mov ecx, dword [esp + 0x1c]
mov eax, dword [ebp + 8]
call fcn.004a8690
mov eax, dword [ebp + 0x10]
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov edx, dword [esp + 0x24]
push edx
push str.unknown_function:__s__
push ebx
call fcn.00472420
mov eax, dword [esp + 0x44]
add esp, 0xc
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
cmp eax, 0x77
jne 0x4a6a8e
mov eax, dword [esi + 0x14]
mov ecx, dword [eax]
mov eax, dword [ecx]
cmp eax, 1
je 0x4a6a8e
push 1
push eax
push str.sub_select_returns__d_columns___expected__d
push ebx
call fcn.00472420
mov eax, dword [esp + 0x48]
add esp, 0x10
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
push 0
push 0
push esi
push ebx
call fcn.004a40a0
add esp, 0x10
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov eax, dword [esi + 0xc]
cmp dword [eax + 0x1c], edx
jne 0x4a6ac1
push 0
push 0
push eax
push ebx
call fcn.004a40a0
mov edx, dword [esi + 0xc]
add esp, 0x10
mov dword [edx + 0x1c], eax
xor edx, edx
mov edi, dword [esi + 0x1c]
cmp edi, edx
je 0x4a6ae4
mov ecx, dword [esi + 0xc]
call fcn.004a1240
cmp edi, eax
je 0x4a6ae4
push eax
push edi
push str._d_columns_assigned__d_values
push ebx
call fcn.00472420
add esp, 0x10
movsx eax, word [esi + 0x20]
mov ecx, dword [esi + 0xc]
add eax, dword [ecx + 0x1c]
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov eax, edi
call fcn.0048e7d0
mov dword [esp + 0x14], eax
mov eax, edi
call fcn.0048e7d0
mov edx, dword [ebp + 0x10]
push 0
push edx
push 0
push 0x3b
push edi
mov dword [esp + 0x38], eax
call fcn.0048e3e0
mov eax, dword [esp + 0x38]
mov ecx, dword [esp + 0x28]
add esp, 0x14
push eax
push ecx
push esi
push ebx
call fcn.004a4780
mov esi, dword [ebp + 0x10]
push 0
push esi
push 1
push 0x38
push edi
call fcn.0048e3e0
mov edx, dword [esp + 0x38]
add esp, 0x24
mov ecx, edi
call fcn.0048e830
push 0
push 0
push esi
push 0x45
push edi
call fcn.0048e3e0
mov edx, dword [esp + 0x38]
add esp, 0x14
mov ecx, edi
call fcn.0048e830
mov eax, esi
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov edx, dword [ebp + 0x10]
push 0
push 0
push edx
push esi
call fcn.004a74b0
mov eax, dword [ebp + 0x10]
add esp, 0x10
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov eax, dword [ebp + 0x10]
mov ecx, dword [esi + 0xc]
push eax
push ecx
push ebx
call fcn.004a6080
add esp, 0xc
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov ebx, dword [esi + 0x2c]
movsx eax, word [ebx + 0x2a]
movsx ecx, word [esi + 0x20]
mov edx, dword [ebp + 0x10]
inc eax
imul eax, dword [esi + 0x1c]
push 0
push edx
lea edx, [eax + ecx + 1]
push edx
push 0x90
push edi
call fcn.0048e3e0
movzx eax, word [esi + 0x20]
add esp, 0x14
test ax, ax
js 0x4a6493
mov ecx, dword [ebx + 4]
cwde
add eax, eax
cmp byte [ecx + eax*8 + 0xd], 0x45
jne 0x4a6493
mov edx, dword [ebp + 0x10]
push 0
push 0
push edx
push 0x48
push edi
call fcn.0048e3e0
mov eax, dword [esp + 0x4c]
add esp, 0x14
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
push str.row_value_misused
push ebx
call fcn.00472420
mov eax, dword [esp + 0x40]
add esp, 8
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov eax, dword [esi + 0x1c]
push 0
push 0
push eax
push 0x17
push edi
call fcn.0048e3e0
inc dword [ebx + 0x3c]
mov ecx, dword [esi + 0xc]
add esp, 0x14
mov dword [esp + 0x14], eax
mov eax, dword [ebp + 0x10]
push eax
push ecx
push ebx
call fcn.004a6080
mov esi, eax
add esp, 0xc
mov eax, ebx
mov dword [esp + 0x38], esi
call fcn.004a5cb0
mov ebx, dword [esp + 0x14]
mov eax, ebx
mov edx, edi
call fcn.0048eb50
mov edx, esi
mov eax, ebx
mov ecx, edi
call fcn.0048eb00
mov eax, esi
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
cmp dword [ebx + 0x7c], edx
jne 0x4a6c97
push str.RAISE___may_only_be_used_within_a_trigger_program
push ebx
call fcn.00472420
add esp, 8
xor eax, eax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
cmp byte [esi + 1], 2
jne 0x4a6caa
mov eax, dword [ebx + 0x78]
cmp eax, edx
jne 0x4a6ca6
mov eax, ebx
mov byte [eax + 0x15], 1
mov al, byte [esi + 1]
push 0
cmp al, 4
jne 0x4a6d0c
mov esi, dword [esi + 8]
push 4
push 0
push 0x37
push edi
call fcn.0048e3e0
mov ecx, dword [edi]
add esp, 0x14
cmp byte [ecx + 0x45], 0
je 0x4a6ce1
mov eax, esi
xor edx, edx
call fcn.0048ed10
mov eax, dword [esp + 0x38]
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
test eax, eax
jns 0x4a6cec
mov eax, dword [edi + 0x88]
dec eax
lea edx, [eax + eax*4]
mov eax, dword [edi + 0x58]
push esi
lea ecx, [eax + edx*4]
push edi
xor eax, eax
call fcn.0048ee80
mov eax, dword [esp + 0x40]
add esp, 8
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov ecx, esi
mov edx, dword [ecx + 8]
push 0
push edx
movsx edi, al
push 0x713
mov eax, ebx
call fcn.004b2160
mov eax, dword [esp + 0x48]
add esp, 0x10
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov eax, dword [esi + 0x14]
mov ecx, dword [edi + 0xc]
mov dword [esp + 0x1c], eax
mov eax, dword [eax]
mov dword [esp + 0x28], eax
mov eax, dword [ecx + 0x44]
mov dword [esp + 0x24], edx
lea edx, [eax + 1]
mov dword [ecx + 0x44], edx
lea edx, [eax - 1]
mov dword [esp + 0x14], ecx
mov dword [esp + 0x20], eax
test eax, edx
jne 0x4a6d8c
lea ecx, [eax*8 + 4]
mov eax, dword [esp + 0x14]
mov edi, dword [eax + 0x48]
mov esi, dword [eax]
push 0
push ecx
call fcn.0046fde0
mov edx, dword [esp + 0x1c]
mov edi, dword [esp + 0x3c]
mov esi, dword [ebp + 0xc]
mov dword [edx + 0x48], eax
mov eax, dword [esp + 0x28]
add esp, 8
mov ecx, edx
mov ecx, dword [ecx + 0x48]
test ecx, ecx
je 0x4a6d9a
mov dword [ecx + eax*4], 0xffffffff
mov esi, dword [esi + 0xc]
or ecx, 0xffffffff
sub ecx, eax
mov dword [esp + 0x20], ecx
mov dword [esp + 0x30], esi
test esi, esi
je 0x4a6e0f
lea eax, [esp + 0x40]
mov ecx, 0xc
lea edi, [esp + 0x40]
rep movsd dword es:[edi], dword [esi]
push eax
lea eax, [esp + 0x14]
mov ecx, ebx
call fcn.004a5f80
mov cl, byte [esp + 0x44]
and dword [esp + 0x48], 0xffffefff
add esp, 4
push 0x30
lea edx, [esp + 0x74]
push 0
push edx
mov byte [esp + 0x72], cl
mov byte [esp + 0x4c], 0x9d
mov dword [esp + 0x68], eax
call sub.MSVCR100.dll_memset
mov edi, dword [esp + 0x40]
lea eax, [esp + 0x4c]
lea ecx, [esp + 0x7c]
add esp, 0xc
mov byte [esp + 0x70], 0x4e
mov dword [esp + 0x7c], eax
mov dword [esp + 0x24], ecx
mov eax, dword [esp + 0x28]
dec eax
test eax, eax
jle 0x4a6f53
mov ecx, dword [esp + 0x1c]
dec eax
add ecx, 8
shr eax, 1
inc eax
mov dword [esp + 0x10], ecx
mov dword [esp + 0x2c], eax
nop
inc dword [ebx + 0x3c]
cmp dword [esp + 0x30], 0
je 0x4a6e49
mov edx, dword [esp + 0x10]
mov eax, dword [edx]
mov dword [esp + 0x80], eax
jmp 0x4a6e53
mov ecx, dword [esp + 0x10]
mov edx, dword [ecx]
mov dword [esp + 0x24], edx
mov ecx, dword [edi + 0xc]
mov eax, dword [ecx + 0x44]
lea edx, [eax + 1]
mov dword [ecx + 0x44], edx
lea edx, [eax - 1]
mov dword [esp + 0x14], ecx
mov dword [esp + 0x18], eax
test eax, edx
jne 0x4a6e9a
lea ecx, [eax*8 + 4]
mov eax, dword [esp + 0x14]
mov edi, dword [eax + 0x48]
mov esi, dword [eax]
push 0
push ecx
call fcn.0046fde0
mov edx, dword [esp + 0x1c]
mov edi, dword [esp + 0x3c]
mov dword [edx + 0x48], eax
mov eax, dword [esp + 0x20]
add esp, 8
mov ecx, edx
mov ecx, dword [ecx + 0x48]
test ecx, ecx
je 0x4a6ea8
mov dword [ecx + eax*4], 0xffffffff
or esi, 0xffffffff
sub esi, eax
mov eax, dword [esp + 0x24]
push 0x10
push esi
push eax
push ebx
call fcn.004a7900
mov ecx, dword [ebp + 0x10]
mov edx, dword [esp + 0x20]
mov eax, dword [edx + 0x18]
push ecx
push eax
push ebx
call fcn.004a7280
mov eax, dword [edi + 0x88]
mov ecx, dword [edi + 0xc]
add esp, 0x1c
cmp dword [ecx + 0x30], eax
jg 0x4a6ef5
mov edx, dword [esp + 0x20]
push 0
push edx
push 0
push 0xd
mov eax, edi
call fcn.0048e3a0
add esp, 0x10
jmp 0x4a6f22
lea ecx, [eax + 1]
mov dword [edi + 0x88], ecx
lea edx, [eax + eax*4]
mov eax, dword [edi + 0x58]
lea eax, [eax + edx*4]
mov edx, dword [esp + 0x20]
xor ecx, ecx
mov word [eax + 2], cx
mov dword [eax + 4], ecx
mov dword [eax + 8], edx
mov dword [eax + 0xc], ecx
mov dword [eax + 0x10], ecx
mov word [eax], 0xd
mov eax, ebx
call fcn.004a5cb0
mov eax, dword [edi + 0xc]
mov eax, dword [eax + 0x48]
test eax, eax
je 0x4a6f44
mov edx, dword [edi + 0x88]
lea ecx, [esi*4 + 4]
sub eax, ecx
mov dword [eax], edx
add dword [esp + 0x10], 0x30
dec dword [esp + 0x2c]
jne 0x4a6e30
mov eax, dword [esp + 0x28]
test al, 1
je 0x4a6f80
mov ecx, dword [ebp + 0x10]
inc dword [ebx + 0x3c]
lea edx, [eax + eax*2]
mov eax, dword [esp + 0x1c]
push ecx
mov ecx, dword [eax + edx*8 - 0x10]
push ecx
push ebx
call fcn.004a7280
add esp, 0xc
mov eax, ebx
call fcn.004a5cb0
jmp 0x4a6f93
mov edx, dword [ebp + 0x10]
push 0
push edx
push 0
push 0x3b
push edi
call fcn.0048e3e0
add esp, 0x14
mov eax, dword [edi + 0xc]
mov eax, dword [eax + 0x48]
test eax, eax
je 0x4a6493
mov ecx, dword [esp + 0x20]
lea edx, [ecx*4 + 4]
mov ecx, dword [edi + 0x88]
sub eax, edx
mov dword [eax], ecx
mov eax, dword [esp + 0x38]
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov byte [ecx + 6], 1
jmp 0x4a6454
mov eax, dword [esp + 0x38]
pop edi
pop esi
mov byte [ecx + 6], 1
pop ebx
mov esp, ebp
pop ebp
ret