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

Disassembly:
sub esp, 0x4c
mov ecx, dword [0x4d2f10]
fld qword [0x4b9518]
push ebx
fstp qword [0x4d30f0]
push ebp
push esi
mov esi, dword [esp + 0x5c]
mov eax, esi
shl eax, 6
mov ebx, dword [eax + ecx]
mov ebp, dword [eax + ecx + 4]
push edi
mov dword [esp + 0x58], eax
lea eax, [esp + 0x40]
push eax
lea ecx, [esp + 0x17]
push ecx
push esi
push ebp
push ebx
mov dword [0x4d3124], 0
call fcn.004641f0
mov edi, eax
add esp, 0x14
mov dword [esp + 0x14], edi
cmp edi, 0xffffffff
jne 0x46583c
fld qword [0x4b9638]
lea edx, [esp + 0x40]
push edx
fstp qword [0x4d30f0]
lea eax, [esp + 0x17]
push eax
push esi
push ebp
push ebx
call fcn.004641f0
mov edi, eax
add esp, 0x14
mov dword [esp + 0x14], eax
cmp edi, 0xffffffff
jne 0x46583c
push 1
push 0
push esi
call fcn.00461870
add esp, 0xc
test al, al
jne 0x466a72
push esi
push ebx
call fcn.00472760
mov edi, eax
add esp, 8
mov dword [esp + 0x14], edi
xor cl, cl
jmp 0x465840
mov cl, byte [esp + 0x13]
mov edx, dword [0x4d2eac]
lea eax, [edi + edi*2]
shl eax, 4
mov dword [esp + 0x3c], eax
mov dword [eax + edx + 0x18], 0
test cl, cl
je 0x465865
mov dword [esp + 0x40], edi
jmp 0x4658f3
fld qword [0x4b9518]
lea eax, [esp + 0x40]
push eax
fstp qword [0x4d30f0]
lea ecx, [esp + 0x17]
push ecx
push esi
push ebx
push ebp
call fcn.004641f0
add esp, 0x14
mov dword [esp + 0x40], eax
cmp eax, 0xffffffff
jne 0x4658dc
fld qword [0x4b9638]
lea edx, [esp + 0x40]
push edx
fstp qword [0x4d30f0]
lea eax, [esp + 0x17]
push eax
push esi
push ebx
push ebp
call fcn.004641f0
add esp, 0x14
mov dword [esp + 0x40], eax
cmp eax, 0xffffffff
jne 0x4658dc
push 1
push 0
push esi
call fcn.00461870
add esp, 0xc
test al, al
jne 0x466a72
push esi
push ebp
call fcn.00472760
add esp, 8
mov dword [esp + 0x40], eax
cmp edi, eax
je 0x4658f3
mov edx, dword [0x4d2eac]
lea ecx, [eax + eax*2]
add ecx, ecx
mov dword [edx + ecx*8 + 0x18], 0
fld qword [0x4b9630]
mov eax, dword [0x4d2eac]
fstp qword [0x4d30f0]
mov ecx, dword [esp + 0x3c]
mov esi, dword [ecx + eax + 0x1c]
mov ebp, dword [esp + 0x14]
lea edx, [esi + esi*2]
add edx, edx
cmp byte [ecx + eax + 0x24], 0
je 0x465958
mov edi, dword [0x4d2eb8]
cmp dword [edi + edx*8], ebp
jne 0x46592d
mov edi, dword [edi + edx*8 + 0x18]
jmp 0x465931
mov edi, dword [edi + edx*8 + 0x20]
mov dword [ecx + eax + 0x18], 3
mov eax, dword [esp + 0x60]
push eax
push ebp
push esi
mov ebx, esi
call fcn.00465050
mov ecx, dword [esp + 0x6c]
push ecx
push ebp
push edi
call fcn.00465050
add esp, 0x18
jmp 0x4659b0
mov ebx, dword [0x4d2eb8]
cmp dword [ebx + edx*8], ebp
jne 0x465969
mov edi, dword [ebx + edx*8 + 0x18]
jmp 0x46596d
mov edi, dword [ebx + edx*8 + 0x20]
lea edx, [edi + edi*2]
add edx, edx
cmp dword [ebx + edx*8], ebp
jne 0x46597d
mov ebx, dword [ebx + edx*8 + 0x18]
jmp 0x465981
mov ebx, dword [ebx + edx*8 + 0x20]
mov dword [ecx + eax + 0x18], 3
mov eax, dword [esp + 0x60]
push eax
push ebp
push esi
call fcn.00465050
mov ecx, dword [esp + 0x6c]
push ecx
push ebp
push edi
call fcn.00465050
mov edx, dword [esp + 0x78]
push edx
push ebp
push ebx
call fcn.00465050
add esp, 0x24
mov ebp, dword [esp + 0x40]
mov eax, dword [0x4d2eac]
lea ebp, [ebp + ebp*2]
add ebp, ebp
cmp dword [eax + ebp*8 + 0x18], 3
je 0x465a23
fldz
fld qword [0x4d30f0]
fcom st(1)
fnstsw ax
test ah, 5
jp 0x465aa0
fstp st(0)
fstp qword [0x4d30f0]
mov ebp, dword [esp + 0x14]
push ebp
push esi
mov dword [0x4d3124], 0
call fcn.004621c0
push ebp
push edi
call fcn.004621c0
mov eax, dword [0x4d2eac]
mov ecx, dword [esp + 0x4c]
add esp, 0x10
cmp byte [ecx + eax + 0x24], 0
jne 0x465a23
mov edx, ebp
push edx
push ebx
call fcn.004621c0
add esp, 8
mov eax, dword [0x4d2eac]
mov ecx, dword [esp + 0x40]
lea ecx, [ecx + ecx*2]
add ecx, ecx
cmp dword [eax + ecx*8 + 0x18], 3
jne 0x465904
xor esi, esi
cmp dword [0x4d3124], esi
jle 0x465b8e
mov edi, dword [esp + 0x60]
lea esp, [esp]
fld qword [0x4b94e0]
fstp qword [0x4d30f0]
lea esp, [esp]
mov eax, dword [0x4d3120]
mov edx, dword [eax + esi*8 + 4]
mov eax, dword [eax + esi*8]
push edi
push edx
push eax
call fcn.00464500
add esp, 0xc
test al, al
jne 0x465b7c
cmp byte [0x4d2fbc], al
jne 0x466a72
fldz
fld qword [0x4d30f0]
fcom st(1)
fnstsw ax
test ah, 5
jp 0x465b19
fstp st(0)
jmp 0x465a56
fld st(0)
fucomp st(2)
fnstsw ax
fstp st(1)
test ah, 0x44
jp 0x465aba
fstp st(0)
fld qword [0x4b9638]
jmp 0x4659dd
fmul qword [0x4b8c00]
fst qword [0x4d30f0]
fcomp qword [0x4b9690]
fnstsw ax
test ah, 0x41
jnp 0x4659e3
mov eax, dword [esp + 0x60]
push 1
push 0
push eax
call fcn.00461870
add esp, 0xc
test al, al
jne 0x466a72
mov ecx, dword [0x4d2eac]
mov edx, dword [esp + 0x14]
mov dword [ecx + ebp*8 + 0x18], 0
mov dword [esp + 0x40], edx
mov byte [0x4d2fbe], 1
mov byte [0x652212], 1
jmp 0x465a1e
fld st(0)
fucomp st(2)
fnstsw ax
fstp st(1)
test ah, 0x44
jp 0x465b33
fstp st(0)
fld qword [0x4b9638]
jmp 0x465a56
fmul qword [0x4b8c00]
fst qword [0x4d30f0]
fcomp qword [0x4b9690]
fnstsw ax
test ah, 0x41
jnp 0x465a60
push 1
push 0
push edi
call fcn.00461870
add esp, 0xc
test al, al
jne 0x466a72
mov eax, dword [0x4d3120]
mov ecx, dword [eax + esi*8 + 4]
mov edx, dword [eax + esi*8]
push edi
push ecx
push edx
call fcn.00472970
add esp, 0xc
inc esi
cmp esi, dword [0x4d3124]
jl 0x465a50
mov eax, dword [0x4d2eac]
mov edx, dword [esp + 0x3c]
mov ecx, dword [edx + eax + 0x1c]
mov ebp, dword [esp + 0x14]
mov dword [edx + eax + 0x18], 2
lea eax, [esp + 0x30]
push eax
xor esi, esi
push ebp
push ecx
mov dword [0x4d3124], esi
mov dword [0x4d3130], esi
mov dword [0x4d3134], esi
call fcn.004628a0
add esp, 0xc
test al, al
je 0x465d4b
lea ecx, [ecx]
mov ebx, dword [0x4d3130]
xor ecx, ecx
test ebx, ebx
jle 0x465c15
mov edx, dword [esp + 0x30]
mov esi, dword [0x4d2eb8]
mov edi, dword [0x4d312c]
lea esp, [esp]
mov eax, dword [edi + ecx*4]
lea eax, [eax + eax*2]
add eax, eax
cmp dword [esi + eax*8], edx
je 0x465c0a
cmp dword [esi + eax*8 + 4], edx
je 0x465c0a
inc ecx
cmp ecx, ebx
jl 0x465bf0
jmp 0x465c15
cmp ebp, edx
je 0x465c0f
inc ecx
mov dword [0x4d3134], ecx
fld qword [0x4b94e0]
fstp qword [0x4d30f0]
mov esi, dword [esp + 0x60]
push esi
call fcn.00464b30
mov bl, al
add esp, 4
test bl, bl
jne 0x465ca5
cmp byte [0x4d2fbc], al
jne 0x466a72
fldz
fld qword [0x4d30f0]
fcom st(1)
fnstsw ax
test ah, 5
jp 0x465c55
fstp st(0)
jmp 0x465c1b
fld st(0)
fucomp st(2)
fnstsw ax
fstp st(1)
test ah, 0x44
jp 0x465c6c
fstp st(0)
fld qword [0x4b9638]
jmp 0x465c1b
fmul qword [0x4b8c00]
fst qword [0x4d30f0]
fcomp qword [0x4b9690]
fnstsw ax
test ah, 0x41
jnp 0x465c21
push 1
push 0
push esi
call fcn.00461870
add esp, 0xc
test al, al
jne 0x466a72
push esi
call fcn.00472b00
add esp, 4
mov bl, 1
mov ecx, dword [0x4d2eac]
mov edx, dword [esp + 0x3c]
mov edi, dword [edx + ecx + 0x1c]
xor eax, eax
push ebp
push edi
mov dword [0x4d3130], eax
mov dword [0x4d3134], eax
call fcn.004622c0
add esp, 8
cmp dword [esp + 0x30], ebp
jne 0x465d1a
mov ecx, dword [0x4d2eb8]
lea eax, [edi + edi*2]
add eax, eax
cmp dword [ecx + eax*8], ebp
jne 0x465ce5
mov esi, dword [ecx + eax*8 + 0x18]
jmp 0x465ce9
mov esi, dword [ecx + eax*8 + 0x20]
push ebp
push esi
call fcn.004622c0
mov eax, dword [0x4d2eb8]
lea edx, [esi + esi*2]
add edx, edx
add esp, 8
cmp dword [eax + edx*8], ebp
jne 0x465d08
mov eax, dword [eax + edx*8 + 0x18]
jmp 0x465d0c
mov eax, dword [eax + edx*8 + 0x20]
cmp eax, edi
je 0x465d1a
push ebp
push eax
call fcn.004622c0
add esp, 8
mov ecx, dword [0x4d2eac]
mov edx, dword [esp + 0x3c]
mov dword [edx + ecx + 0x18], 2
test bl, bl
je 0x465c21
lea eax, [esp + 0x30]
push eax
push ebp
push edi
call fcn.004628a0
add esp, 0xc
test al, al
jne 0x465bd0
mov ecx, dword [0x4d2eac]
mov edx, dword [esp + 0x3c]
mov ebp, dword [edx + ecx + 0x1c]
mov eax, dword [0x4d2eb8]
mov edi, dword [esp + 0x14]
mov dword [esp + 0x40], ebp
lea ebp, [ebp + ebp*2]
add ebp, ebp
cmp dword [eax + ebp*8], edi
jne 0x465d77
mov eax, dword [eax + ebp*8 + 0x18]
jmp 0x465d7b
mov eax, dword [eax + ebp*8 + 0x20]
xor ecx, ecx
mov dword [0x4d3130], ecx
mov dword [0x4d3134], ecx
lea ecx, [esp + 0x30]
push ecx
push edi
push eax
call fcn.004628a0
add esp, 0xc
test al, al
je 0x465f09
mov ebx, dword [0x4d3130]
mov esi, dword [esp + 0x60]
xor ecx, ecx
test ebx, ebx
jle 0x465def
mov edx, dword [esp + 0x30]
mov esi, dword [0x4d2eb8]
mov edi, dword [0x4d312c]
mov eax, dword [edi + ecx*4]
lea eax, [eax + eax*2]
add eax, eax
cmp dword [esi + eax*8], edx
je 0x465dda
cmp dword [esi + eax*8 + 4], edx
je 0x465dda
inc ecx
cmp ecx, ebx
jl 0x465dc0
jmp 0x465de7
cmp dword [esp + 0x14], edx
je 0x465de1
inc ecx
mov dword [0x4d3134], ecx
mov esi, dword [esp + 0x60]
mov edi, dword [esp + 0x14]
fld qword [0x4b94e0]
fstp qword [0x4d30f0]
jmp 0x465e04
mov esi, dword [esp + 0x60]
push esi
call fcn.00464b30
mov bl, al
add esp, 4
test bl, bl
jne 0x465e90
cmp byte [0x4d2fbc], al
jne 0x466a72
fldz
fld qword [0x4d30f0]
fcom st(1)
fnstsw ax
test ah, 5
jp 0x465e3a
fstp st(0)
fstp qword [0x4d30f0]
jmp 0x465e04
fld st(0)
fucomp st(2)
fnstsw ax
fstp st(1)
test ah, 0x44
jp 0x465e57
fstp st(0)
fld qword [0x4b9638]
fstp qword [0x4d30f0]
jmp 0x465e04
fmul qword [0x4b8c00]
fst qword [0x4d30f0]
fcomp qword [0x4b9690]
fnstsw ax
test ah, 0x41
jnp 0x465e04
push 1
push 0
push esi
call fcn.00461870
add esp, 0xc
test al, al
jne 0x466a72
push esi
call fcn.00472b00
add esp, 4
mov bl, 1
xor eax, eax
mov dword [0x4d3130], eax
mov dword [0x4d3134], eax
mov eax, dword [0x4d2eb8]
cmp dword [eax + ebp*8], edi
jne 0x465eac
mov esi, dword [eax + ebp*8 + 0x18]
jmp 0x465eb0
mov esi, dword [eax + ebp*8 + 0x20]
push edi
push esi
call fcn.004622c0
add esp, 8
cmp dword [esp + 0x30], edi
jne 0x465eea
mov edx, dword [0x4d2eb8]
lea eax, [esi + esi*2]
add eax, eax
cmp dword [edx + eax*8], edi
jne 0x465ed6
mov eax, dword [edx + eax*8 + 0x18]
jmp 0x465eda
mov eax, dword [edx + eax*8 + 0x20]
cmp eax, dword [esp + 0x40]
je 0x465eea
push edi
push eax
call fcn.004622c0
add esp, 8
test bl, bl
je 0x465e00
lea eax, [esp + 0x30]
push eax
push edi
push esi
call fcn.004628a0
add esp, 0xc
test al, al
jne 0x465da0
mov eax, dword [0x4d2eb8]
cmp dword [eax + ebp*8], edi
jne 0x465f19
mov ecx, dword [eax + ebp*8 + 0x18]
jmp 0x465f1d
mov ecx, dword [eax + ebp*8 + 0x20]
mov ebp, dword [esp + 0x14]
lea edi, [ecx + ecx*2]
add edi, edi
cmp dword [eax + edi*8], ebp
jne 0x465f31
mov ecx, dword [eax + edi*8 + 0x18]
jmp 0x465f35
mov ecx, dword [eax + edi*8 + 0x20]
xor edx, edx
mov dword [0x4d3130], edx
mov dword [0x4d3134], edx
cmp ecx, dword [esp + 0x40]
je 0x466062
lea edx, [esp + 0x30]
push edx
push ebp
push ecx
call fcn.004628a0
add esp, 0xc
test al, al
je 0x46605d
mov eax, dword [esp + 0x30]
mov esi, dword [esp + 0x60]
push eax
push ebp
call fcn.00462850
fld qword [0x4b94e0]
fstp qword [0x4d30f0]
add esp, 8
jmp 0x465f88
mov esi, dword [esp + 0x60]
push esi
call fcn.00464b30
mov bl, al
add esp, 4
test bl, bl
jne 0x466014
cmp byte [0x4d2fbc], al
jne 0x466a72
fldz
fld qword [0x4d30f0]
fcom st(1)
fnstsw ax
test ah, 5
jp 0x465fbe
fstp st(0)
fstp qword [0x4d30f0]
jmp 0x465f88
fld st(0)
fucomp st(2)
fnstsw ax
fstp st(1)
test ah, 0x44
jp 0x465fdb
fstp st(0)
fld qword [0x4b9638]
fstp qword [0x4d30f0]
jmp 0x465f88
fmul qword [0x4b8c00]
fst qword [0x4d30f0]
fcomp qword [0x4b9690]
fnstsw ax
test ah, 0x41
jnp 0x465f88
push 1
push 0
push esi
call fcn.00461870
add esp, 0xc
test al, al
jne 0x466a72
push esi
call fcn.00472b00
add esp, 4
mov bl, 1
xor eax, eax
mov dword [0x4d3130], eax
mov dword [0x4d3134], eax
mov eax, dword [0x4d2eb8]
cmp dword [eax + edi*8], ebp
jne 0x466030
mov esi, dword [eax + edi*8 + 0x18]
jmp 0x466034
mov esi, dword [eax + edi*8 + 0x20]
push ebp
push esi
call fcn.004622c0
add esp, 8
test bl, bl
je 0x465f84
lea ecx, [esp + 0x30]
push ecx
push ebp
push esi
call fcn.004628a0
add esp, 0xc
test al, al
jne 0x465f64
mov eax, dword [0x4d2eb8]
mov edx, dword [esp + 0x3c]
mov ecx, dword [0x4d2eac]
cmp byte [edx + ecx + 0x24], 0
mov ecx, dword [edx + ecx + 0x1c]
lea edx, [ecx + ecx*2]
je 0x466402
add edx, edx
cmp dword [eax + edx*8], ebp
jne 0x46608b
mov esi, dword [eax + edx*8 + 0x18]
jmp 0x46608f
mov esi, dword [eax + edx*8 + 0x20]
mov edi, dword [esp + 0x60]
lea eax, [esp + 0x1c]
push eax
lea edx, [esp + 0x30]
push edx
lea eax, [esp + 0x20]
push eax
lea edx, [esp + 0x44]
push edx
push ecx
push ebp
push 0
push edi
call fcn.00462c00
add esp, 0x20
cmp byte [0x4d2fbc], 0
jne 0x466a72
lea eax, [esp + 0x28]
push eax
lea ecx, [esp + 0x24]
push ecx
lea edx, [esp + 0x2c]
push edx
lea eax, [esp + 0x40]
push eax
push esi
push ebp
push 0
push edi
call fcn.00462c00
add esp, 0x20
cmp byte [0x4d2fbc], 0
jne 0x466a72
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x1c]
lea eax, [eax + eax*2]
shl eax, 4
add eax, dword [0x4d2eb8]
cmp dword [eax + 4], ecx
jne 0x466110
mov esi, dword [eax + 0xc]
mov edi, dword [eax + 0x14]
jmp 0x466116
mov esi, dword [eax + 8]
mov edi, dword [eax + 0x10]
mov eax, dword [esp + 0x60]
mov edx, dword [esp + 0x20]
push edi
push 0
push esi
push eax
push edx
push ecx
call fcn.00451280
mov ebp, dword [sym.imp.MSVCR100.dll_printf]
add esp, 0x18
mov ebx, eax
cmp edi, 2
jne 0x466149
mov ecx, dword [0x4d2ef4]
lea eax, [esi + esi*4]
mov dword [ecx + eax*8 + 0x10], ebx
jmp 0x46617a
test edi, edi
jne 0x46615c
mov edx, dword [0x4d2f10]
shl esi, 6
mov dword [esi + edx + 0x30], ebx
jmp 0x46617a
cmp edi, 1
jne 0x46616f
mov eax, dword [0x4d2f1c]
imul esi, esi, 0x68
mov dword [esi + eax + 0x5c], ebx
jmp 0x46617a
push edi
push 0x4c24b8
call ebp
add esp, 8
mov eax, dword [esp + 0x18]
mov edx, dword [0x4d2eb8]
lea eax, [eax + eax*2]
add eax, eax
mov ecx, dword [edx + eax*8]
cmp ecx, dword [esp + 0x1c]
jne 0x466198
mov dword [edx + eax*8 + 0x18], ebx
jmp 0x46619c
mov dword [edx + eax*8 + 0x20], ebx
mov ecx, dword [0x4d2eb8]
lea eax, [ebx + ebx*2]
add eax, eax
mov edx, dword [ecx + eax*8]
cmp edx, dword [esp + 0x1c]
mov edx, dword [esp + 0x18]
jne 0x4661ba
mov dword [ecx + eax*8 + 0x1c], edx
jmp 0x4661be
mov dword [ecx + eax*8 + 0x24], edx
mov ecx, dword [esp + 0x34]
lea ecx, [ecx + ecx*2]
shl ecx, 4
add ecx, dword [0x4d2eb8]
mov edx, dword [ecx]
cmp edx, dword [esp + 0x20]
jne 0x4661db
mov dword [ecx + 0x1c], ebx
jmp 0x4661de
mov dword [ecx + 0x24], ebx
mov ecx, dword [0x4d2eb8]
mov edx, dword [ecx + eax*8]
cmp edx, dword [esp + 0x20]
mov edx, dword [esp + 0x34]
jne 0x4661f7
mov dword [ecx + eax*8 + 0x18], edx
jmp 0x4661fb
mov dword [ecx + eax*8 + 0x20], edx
mov ecx, dword [esp + 0x18]
mov edx, dword [0x4d2eb8]
mov esi, dword [esp + 0x1c]
lea ecx, [ecx + ecx*2]
add ecx, ecx
cmp dword [edx + ecx*8], esi
jne 0x466219
mov ecx, dword [edx + ecx*8 + 0x1c]
jmp 0x46621d
mov ecx, dword [edx + ecx*8 + 0x24]
cmp ecx, 0xffffffff
je 0x46624f
lea edi, [ecx + ecx*2]
add edi, edi
cmp dword [edx + edi*8], esi
jne 0x466232
mov dword [edx + edi*8 + 0x1c], ebx
jmp 0x466236
mov dword [edx + edi*8 + 0x24], ebx
mov edx, dword [0x4d2eb8]
mov esi, dword [edx + eax*8]
cmp esi, dword [esp + 0x1c]
jne 0x46624b
mov dword [edx + eax*8 + 0x18], ecx
jmp 0x46624f
mov dword [edx + eax*8 + 0x20], ecx
mov ecx, dword [esp + 0x34]
mov edx, dword [0x4d2eb8]
mov esi, dword [esp + 0x20]
lea ecx, [ecx + ecx*2]
add ecx, ecx
cmp dword [edx + ecx*8], esi
jne 0x46626d
mov ecx, dword [edx + ecx*8 + 0x18]
jmp 0x466271
mov ecx, dword [edx + ecx*8 + 0x20]
cmp ecx, 0xffffffff
je 0x4662a3
lea edi, [ecx + ecx*2]
add edi, edi
cmp dword [edx + edi*8], esi
jne 0x466286
mov dword [edx + edi*8 + 0x18], ebx
jmp 0x46628a
mov dword [edx + edi*8 + 0x20], ebx
mov edx, dword [0x4d2eb8]
mov esi, dword [edx + eax*8]
cmp esi, dword [esp + 0x20]
jne 0x46629f
mov dword [edx + eax*8 + 0x1c], ecx
jmp 0x4662a3
mov dword [edx + eax*8 + 0x24], ecx
mov eax, dword [esp + 0x24]
mov ecx, dword [esp + 0x28]
lea edx, [eax + eax*2]
mov eax, dword [0x4d2eb8]
shl edx, 4
add eax, edx
cmp dword [eax + 4], ecx
jne 0x4662c5
mov esi, dword [eax + 0xc]
mov edi, dword [eax + 0x14]
jmp 0x4662cb
mov esi, dword [eax + 8]
mov edi, dword [eax + 0x10]
mov edx, dword [esp + 0x60]
mov eax, dword [esp + 0x2c]
push edi
push 0
push esi
push edx
push eax
push ecx
call fcn.00451280
add esp, 0x18
mov ebx, eax
cmp edi, 2
jne 0x4662f8
mov edx, dword [0x4d2ef4]
lea ecx, [esi + esi*4]
mov dword [edx + ecx*8 + 0x10], ebx
jmp 0x466329
test edi, edi
jne 0x46630a
mov eax, dword [0x4d2f10]
shl esi, 6
mov dword [esi + eax + 0x30], ebx
jmp 0x466329
cmp edi, 1
jne 0x46631e
mov ecx, dword [0x4d2f1c]
imul esi, esi, 0x68
mov dword [esi + ecx + 0x5c], ebx
jmp 0x466329
push edi
push 0x4c24e4
call ebp
add esp, 8
mov eax, dword [esp + 0x24]
lea edx, [eax + eax*2]
mov eax, dword [0x4d2eb8]
add edx, edx
mov ecx, dword [eax + edx*8]
cmp ecx, dword [esp + 0x28]
jne 0x466346
mov dword [eax + edx*8 + 0x18], ebx
jmp 0x46634a
mov dword [eax + edx*8 + 0x20], ebx
mov eax, dword [0x4d2eb8]
lea ecx, [ebx + ebx*2]
add ecx, ecx
mov edx, dword [eax + ecx*8]
cmp edx, dword [esp + 0x28]
mov edx, dword [esp + 0x24]
jne 0x466367
mov dword [eax + ecx*8 + 0x1c], edx
jmp 0x46636b
mov dword [eax + ecx*8 + 0x24], edx
mov eax, dword [esp + 0x38]
lea eax, [eax + eax*2]
shl eax, 4
add eax, dword [0x4d2eb8]
mov edx, dword [eax]
cmp edx, dword [esp + 0x2c]
jne 0x466388
mov dword [eax + 0x1c], ebx
jmp 0x46638b
mov dword [eax + 0x24], ebx
mov eax, dword [0x4d2eb8]
mov edx, dword [eax + ecx*8]
cmp edx, dword [esp + 0x2c]
mov edx, dword [esp + 0x38]
jne 0x4663a3
mov dword [eax + ecx*8 + 0x18], edx
jmp 0x4663a7
mov dword [eax + ecx*8 + 0x20], edx
mov eax, dword [esp + 0x24]
mov edx, dword [0x4d2eb8]
mov esi, dword [esp + 0x28]
lea eax, [eax + eax*2]
add eax, eax
cmp dword [edx + eax*8], esi
jne 0x4663c5
mov eax, dword [edx + eax*8 + 0x1c]
jmp 0x4663c9
mov eax, dword [edx + eax*8 + 0x24]
cmp eax, 0xffffffff
je 0x466974
lea edi, [eax + eax*2]
add edi, edi
cmp dword [edx + edi*8], esi
jne 0x4663e2
mov dword [edx + edi*8 + 0x1c], ebx
jmp 0x4663e6
mov dword [edx + edi*8 + 0x24], ebx
mov edx, dword [0x4d2eb8]
mov esi, dword [edx + ecx*8]
cmp esi, dword [esp + 0x28]
jne 0x46696a
mov dword [edx + ecx*8 + 0x18], eax
jmp 0x46696e
add edx, edx
cmp dword [eax + edx*8], ebp
jne 0x46640f
mov esi, dword [eax + edx*8 + 0x18]
jmp 0x466413
mov esi, dword [eax + edx*8 + 0x20]
lea edx, [esi + esi*2]
add edx, edx
cmp dword [eax + edx*8], ebp
jne 0x466423
mov edi, dword [eax + edx*8 + 0x18]
jmp 0x466427
mov edi, dword [eax + edx*8 + 0x20]
mov ebx, dword [esp + 0x60]
lea eax, [esp + 0x1c]
push eax
lea edx, [esp + 0x30]
push edx
lea eax, [esp + 0x20]
push eax
lea edx, [esp + 0x44]
push edx
push ecx
push ebp
push 0
push ebx
call fcn.00462c00
add esp, 0x20
cmp byte [0x4d2fbc], 0
jne 0x466a72
lea eax, [esp + 0x28]
push eax
lea ecx, [esp + 0x24]
push ecx
lea edx, [esp + 0x2c]
push edx
lea eax, [esp + 0x40]
push eax
push esi
push ebp
push 0
push ebx
call fcn.00462c00
add esp, 0x20
cmp byte [0x4d2fbc], 0
jne 0x466a72
lea ecx, [esp + 0x50]
push ecx
lea edx, [esp + 0x4c]
push edx
lea eax, [esp + 0x54]
push eax
lea ecx, [esp + 0x60]
push ecx
push edi
push ebp
push 0
push ebx
call fcn.00462c00
add esp, 0x20
cmp byte [0x4d2fbc], 0
jne 0x466a72
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x1c]
lea edx, [eax + eax*2]
mov eax, dword [0x4d2eb8]
shl edx, 4
add eax, edx
cmp dword [eax + 4], ecx
jne 0x4664d7
mov esi, dword [eax + 0xc]
mov edi, dword [eax + 0x14]
jmp 0x4664dd
mov esi, dword [eax + 8]
mov edi, dword [eax + 0x10]
mov edx, dword [esp + 0x20]
push edi
push 0
push esi
mov ebp, ebx
push ebp
push edx
push ecx
call fcn.00451280
add esp, 0x18
mov ebx, eax
cmp edi, 2
jne 0x466508
mov ecx, dword [0x4d2ef4]
lea eax, [esi + esi*4]
mov dword [ecx + eax*8 + 0x10], ebx
jmp 0x46653d
test edi, edi
jne 0x46651b
mov edx, dword [0x4d2f10]
shl esi, 6
mov dword [esi + edx + 0x30], ebx
jmp 0x46653d
cmp edi, 1
jne 0x46652e
mov eax, dword [0x4d2f1c]
imul esi, esi, 0x68
mov dword [esi + eax + 0x5c], ebx
jmp 0x46653d
push edi
push 0x4c2510
call dword [sym.imp.MSVCR100.dll_printf]
add esp, 8
mov eax, dword [esp + 0x18]
mov edx, dword [0x4d2eb8]
lea eax, [eax + eax*2]
add eax, eax
mov ecx, dword [edx + eax*8]
cmp ecx, dword [esp + 0x1c]
jne 0x46655b
mov dword [edx + eax*8 + 0x18], ebx
jmp 0x46655f
mov dword [edx + eax*8 + 0x20], ebx
mov ecx, dword [0x4d2eb8]
lea eax, [ebx + ebx*2]
add eax, eax
mov edx, dword [ecx + eax*8]
cmp edx, dword [esp + 0x1c]
mov edx, dword [esp + 0x18]
jne 0x46657d
mov dword [ecx + eax*8 + 0x1c], edx
jmp 0x466581
mov dword [ecx + eax*8 + 0x24], edx
mov ecx, dword [esp + 0x34]
lea ecx, [ecx + ecx*2]
shl ecx, 4
add ecx, dword [0x4d2eb8]
mov edx, dword [ecx]
cmp edx, dword [esp + 0x20]
jne 0x46659e
mov dword [ecx + 0x1c], ebx
jmp 0x4665a1
mov dword [ecx + 0x24], ebx
mov ecx, dword [0x4d2eb8]
mov edx, dword [ecx + eax*8]
cmp edx, dword [esp + 0x20]
mov edx, dword [esp + 0x34]
jne 0x4665ba
mov dword [ecx + eax*8 + 0x18], edx
jmp 0x4665be
mov dword [ecx + eax*8 + 0x20], edx
mov ecx, dword [esp + 0x18]
mov edx, dword [0x4d2eb8]
mov esi, dword [esp + 0x1c]
lea ecx, [ecx + ecx*2]
add ecx, ecx
cmp dword [edx + ecx*8], esi
jne 0x4665dc
mov ecx, dword [edx + ecx*8 + 0x1c]
jmp 0x4665e0
mov ecx, dword [edx + ecx*8 + 0x24]
cmp ecx, 0xffffffff
je 0x466612
lea edi, [ecx + ecx*2]
add edi, edi
cmp dword [edx + edi*8], esi
jne 0x4665f5
mov dword [edx + edi*8 + 0x1c], ebx
jmp 0x4665f9
mov dword [edx + edi*8 + 0x24], ebx
mov edx, dword [0x4d2eb8]
mov esi, dword [edx + eax*8]
cmp esi, dword [esp + 0x1c]
jne 0x46660e
mov dword [edx + eax*8 + 0x18], ecx
jmp 0x466612
mov dword [edx + eax*8 + 0x20], ecx
mov ecx, dword [esp + 0x34]
mov edx, dword [0x4d2eb8]
mov esi, dword [esp + 0x20]
lea ecx, [ecx + ecx*2]
add ecx, ecx
cmp dword [edx + ecx*8], esi
jne 0x466630
mov ecx, dword [edx + ecx*8 + 0x18]
jmp 0x466634
mov ecx, dword [edx + ecx*8 + 0x20]
cmp ecx, 0xffffffff
je 0x466666
lea edi, [ecx + ecx*2]
add edi, edi
cmp dword [edx + edi*8], esi
jne 0x466649
mov dword [edx + edi*8 + 0x18], ebx
jmp 0x46664d
mov dword [edx + edi*8 + 0x20], ebx
mov edx, dword [0x4d2eb8]
mov esi, dword [edx + eax*8]
cmp esi, dword [esp + 0x20]
jne 0x466662
mov dword [edx + eax*8 + 0x1c], ecx
jmp 0x466666
mov dword [edx + eax*8 + 0x24], ecx
mov eax, dword [esp + 0x24]
mov ecx, dword [esp + 0x28]
lea edx, [eax + eax*2]
mov eax, dword [0x4d2eb8]
shl edx, 4
add eax, edx
cmp dword [eax + 4], ecx
jne 0x466688
mov esi, dword [eax + 0xc]
mov edi, dword [eax + 0x14]
jmp 0x46668e
mov esi, dword [eax + 8]
mov edi, dword [eax + 0x10]
mov edx, dword [esp + 0x48]
push edi
push 0
push esi
push ebp
push edx
push ecx
call fcn.00451280
add esp, 0x18
mov ebx, eax
cmp edi, 2
jne 0x4666b7
mov ecx, dword [0x4d2ef4]
lea eax, [esi + esi*4]
mov dword [ecx + eax*8 + 0x10], ebx
jmp 0x4666ec
test edi, edi
jne 0x4666ca
mov edx, dword [0x4d2f10]
shl esi, 6
mov dword [esi + edx + 0x30], ebx
jmp 0x4666ec
cmp edi, 1
jne 0x4666dd
mov eax, dword [0x4d2f1c]
imul esi, esi, 0x68
mov dword [esi + eax + 0x5c], ebx
jmp 0x4666ec
push edi
push 0x4c253c
call dword [sym.imp.MSVCR100.dll_printf]
add esp, 8
mov eax, dword [esp + 0x24]
mov edx, dword [0x4d2eb8]
lea eax, [eax + eax*2]
add eax, eax
mov ecx, dword [edx + eax*8]
cmp ecx, dword [esp + 0x28]
jne 0x46670a
mov dword [edx + eax*8 + 0x18], ebx
jmp 0x46670e
mov dword [edx + eax*8 + 0x20], ebx
mov ecx, dword [0x4d2eb8]
lea eax, [ebx + ebx*2]
add eax, eax
mov edx, dword [ecx + eax*8]
cmp edx, dword [esp + 0x28]
mov edx, dword [esp + 0x24]
jne 0x46672c
mov dword [ecx + eax*8 + 0x1c], edx
jmp 0x466730
mov dword [ecx + eax*8 + 0x24], edx
mov ecx, dword [esp + 0x54]
lea ecx, [ecx + ecx*2]
shl ecx, 4
add ecx, dword [0x4d2eb8]
mov edx, dword [ecx]
cmp edx, dword [esp + 0x48]
jne 0x46674d
mov dword [ecx + 0x1c], ebx
jmp 0x466750
mov dword [ecx + 0x24], ebx
mov ecx, dword [0x4d2eb8]
mov edx, dword [ecx + eax*8]
cmp edx, dword [esp + 0x48]
mov edx, dword [esp + 0x54]
jne 0x466769
mov dword [ecx + eax*8 + 0x18], edx
jmp 0x46676d
mov dword [ecx + eax*8 + 0x20], edx
mov ecx, dword [esp + 0x24]
mov edx, dword [0x4d2eb8]
mov esi, dword [esp + 0x28]
lea ecx, [ecx + ecx*2]
add ecx, ecx
cmp dword [edx + ecx*8], esi
jne 0x46678b
mov ecx, dword [edx + ecx*8 + 0x1c]
jmp 0x46678f
mov ecx, dword [edx + ecx*8 + 0x24]
cmp ecx, 0xffffffff
je 0x4667c1
lea edi, [ecx + ecx*2]
add edi, edi
cmp dword [edx + edi*8], esi
jne 0x4667a4
mov dword [edx + edi*8 + 0x1c], ebx
jmp 0x4667a8
mov dword [edx + edi*8 + 0x24], ebx
mov edx, dword [0x4d2eb8]
mov esi, dword [edx + eax*8]
cmp esi, dword [esp + 0x28]
jne 0x4667bd
mov dword [edx + eax*8 + 0x18], ecx
jmp 0x4667c1
mov dword [edx + eax*8 + 0x20], ecx
mov ecx, dword [esp + 0x54]
mov edx, dword [0x4d2eb8]
mov esi, dword [esp + 0x48]
lea ecx, [ecx + ecx*2]
add ecx, ecx
cmp dword [edx + ecx*8], esi
jne 0x4667df
mov ecx, dword [edx + ecx*8 + 0x18]
jmp 0x4667e3
mov ecx, dword [edx + ecx*8 + 0x20]
cmp ecx, 0xffffffff
je 0x466815
lea edi, [ecx + ecx*2]
add edi, edi
cmp dword [edx + edi*8], esi
jne 0x4667f8
mov dword [edx + edi*8 + 0x18], ebx
jmp 0x4667fc
mov dword [edx + edi*8 + 0x20], ebx
mov edx, dword [0x4d2eb8]
mov esi, dword [edx + eax*8]
cmp esi, dword [esp + 0x48]
jne 0x466811
mov dword [edx + eax*8 + 0x1c], ecx
jmp 0x466815
mov dword [edx + eax*8 + 0x24], ecx
mov eax, dword [esp + 0x4c]
mov ecx, dword [esp + 0x50]
lea edx, [eax + eax*2]
mov eax, dword [0x4d2eb8]
shl edx, 4
add eax, edx
cmp dword [eax + 4], ecx
jne 0x466837
mov esi, dword [eax + 0xc]
mov edi, dword [eax + 0x14]
jmp 0x46683d
mov esi, dword [eax + 8]
mov edi, dword [eax + 0x10]
mov edx, dword [esp + 0x2c]
push edi
push 0
push esi
push ebp
push edx
push ecx
call fcn.00451280
add esp, 0x18
mov ebx, eax
cmp edi, 2
jne 0x466866
mov ecx, dword [0x4d2ef4]
lea eax, [esi + esi*4]
mov dword [ecx + eax*8 + 0x10], ebx
jmp 0x46689b
test edi, edi
jne 0x466879
mov edx, dword [0x4d2f10]
shl esi, 6
mov dword [esi + edx + 0x30], ebx
jmp 0x46689b
cmp edi, 1
jne 0x46688c
mov eax, dword [0x4d2f1c]
imul esi, esi, 0x68
mov dword [esi + eax + 0x5c], ebx
jmp 0x46689b
push edi
push 0x4c2568
call dword [sym.imp.MSVCR100.dll_printf]
add esp, 8
mov eax, dword [esp + 0x4c]
mov edx, dword [0x4d2eb8]
lea eax, [eax + eax*2]
add eax, eax
mov ecx, dword [edx + eax*8]
cmp ecx, dword [esp + 0x50]
jne 0x4668b9
mov dword [edx + eax*8 + 0x18], ebx
jmp 0x4668bd
mov dword [edx + eax*8 + 0x20], ebx
mov eax, dword [0x4d2eb8]
lea ecx, [ebx + ebx*2]
add ecx, ecx
mov edx, dword [eax + ecx*8]
cmp edx, dword [esp + 0x50]
mov edx, dword [esp + 0x4c]
jne 0x4668da
mov dword [eax + ecx*8 + 0x1c], edx
jmp 0x4668de
mov dword [eax + ecx*8 + 0x24], edx
mov eax, dword [esp + 0x38]
lea eax, [eax + eax*2]
shl eax, 4
add eax, dword [0x4d2eb8]
mov edx, dword [eax]
cmp edx, dword [esp + 0x2c]
jne 0x4668fb
mov dword [eax + 0x1c], ebx
jmp 0x4668fe
mov dword [eax + 0x24], ebx
mov eax, dword [0x4d2eb8]
mov edx, dword [eax + ecx*8]
cmp edx, dword [esp + 0x2c]
mov edx, dword [esp + 0x38]
jne 0x466916
mov dword [eax + ecx*8 + 0x18], edx
jmp 0x46691a
mov dword [eax + ecx*8 + 0x20], edx
mov eax, dword [esp + 0x4c]
mov edx, dword [0x4d2eb8]
mov esi, dword [esp + 0x50]
lea eax, [eax + eax*2]
add eax, eax
cmp dword [edx + eax*8], esi
jne 0x466938
mov eax, dword [edx + eax*8 + 0x1c]
jmp 0x46693c
mov eax, dword [edx + eax*8 + 0x24]
cmp eax, 0xffffffff
je 0x466974
lea edi, [eax + eax*2]
add edi, edi
cmp dword [edx + edi*8], esi
jne 0x466951
mov dword [edx + edi*8 + 0x1c], ebx
jmp 0x466955
mov dword [edx + edi*8 + 0x24], ebx
mov edx, dword [0x4d2eb8]
mov esi, dword [edx + ecx*8]
cmp esi, dword [esp + 0x50]
jne 0x46696a
mov dword [edx + ecx*8 + 0x18], eax
jmp 0x46696e
mov dword [edx + ecx*8 + 0x20], eax
mov edx, dword [0x4d2eb8]
mov eax, dword [esp + 0x38]
mov esi, dword [esp + 0x2c]
lea eax, [eax + eax*2]
add eax, eax
cmp dword [edx + eax*8], esi
jne 0x46698c
mov eax, dword [edx + eax*8 + 0x18]
jmp 0x466990
mov eax, dword [edx + eax*8 + 0x20]
cmp eax, 0xffffffff
je 0x4669c2
lea edi, [eax + eax*2]
add edi, edi
cmp dword [edx + edi*8], esi
jne 0x4669a5
mov dword [edx + edi*8 + 0x18], ebx
jmp 0x4669a9
mov dword [edx + edi*8 + 0x20], ebx
mov edx, dword [0x4d2eb8]
mov esi, dword [edx + ecx*8]
cmp esi, dword [esp + 0x2c]
jne 0x4669be
mov dword [edx + ecx*8 + 0x1c], eax
jmp 0x4669c2
mov dword [edx + ecx*8 + 0x24], eax
mov ecx, dword [esp + 0x14]
push ecx
call fcn.00451080
mov edx, dword [0x4d2f10]
mov esi, dword [esp + 0x5c]
add esp, 4
mov dword [esi + edx + 0x30], ebx
call fcn.00451d00
mov eax, dword [0x4d2f10]
mov ecx, dword [esi + eax + 0x30]
mov eax, dword [0x4d2eb8]
mov edx, dword [esp + 0x60]
lea esi, [ecx + ecx*2]
shl esi, 4
cmp dword [esi + eax + 0xc], edx
jne 0x466a0d
cmp dword [esi + eax + 0x14], 0
jne 0x466a0d
mov ebx, dword [esi + eax + 4]
jmp 0x466a10
mov ebx, dword [esi + eax]
mov ebp, ecx
mov edx, dword [esi + eax + 8]
cmp edx, dword [esp + 0x60]
jne 0x466a2d
cmp dword [esi + eax + 0x10], 0
jne 0x466a2d
mov edx, dword [esi + eax + 0xc]
mov edi, dword [esi + eax + 0x14]
jmp 0x466a31
mov edi, dword [esi + eax + 0x10]
cmp edi, 2
jne 0x466a4a
mov eax, dword [esp + 0x60]
push edx
push eax
push ecx
call fcn.004623b0
mov eax, dword [0x4d2eb8]
add esp, 0xc
cmp dword [esi + eax], ebx
jne 0x466a55
mov ecx, dword [esi + eax + 0x18]
jmp 0x466a59
mov ecx, dword [esi + eax + 0x20]
lea esi, [ecx + ecx*2]
shl esi, 4
mov edx, dword [esi + eax]
cmp edx, ebx
jne 0x466a6c
mov ebx, dword [esi + eax + 4]
jmp 0x466a6e
mov ebx, edx
cmp ecx, ebp
jne 0x466a12
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x4c
ret