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

Disassembly:
mov eax, dword [0x4ba7f0]
mov edx, dword [esp + 4]
sub esp, 0xc
test eax, eax
jne 0x466e90
mov ax, word [edx + 0x28]
add ax, word [edx + 0x24]
shl eax, 1
add word [0x788a60], ax
mov cx, word [edx + 0x2a]
add cx, word [edx + 0x26]
add word [0x788a60], cx
movsx eax, word [edx + 0x24]
push ebx
push ebp
mov ebp, dword [edx + 0x2c]
push esi
mov esi, dword [edx + 0x30]
push edi
test eax, eax
mov dword [esp + 0x10], ebp
je 0x467475
mov ecx, dword [0x6b94c4]
mov dword [esp + 0x14], eax
test byte [esi], 2
jne 0x466ef1
mov edi, dword [esi + 0x34]
mov eax, dword [esi + 0x38]
mov edx, dword [esi + 0x3c]
fld dword [edi + 0x24]
fsub dword [eax + 0x24]
fld dword [edx + 0x28]
fsub dword [eax + 0x28]
fmulp st(1)
fld dword [edi + 0x28]
fsub dword [eax + 0x28]
fld dword [edx + 0x24]
fsub dword [eax + 0x24]
fmulp st(1)
fsubp st(1)
fcomp dword [0x4b0004]
fnstsw ax
test ah, 1
jne 0x46738e
mov eax, dword [esi + 0x3c]
mov edx, dword [esi + 0x40]
mov eax, dword [eax + 0x54]
mov edx, dword [edx + 0x54]
mov dword [esp + 0x10], eax
mov eax, dword [esi + 0x38]
mov edi, dword [eax + 0x54]
mov eax, dword [esi + 0x34]
mov dword [esp + 0x18], edi
mov eax, dword [eax + 0x54]
mov ebx, eax
and ebx, edi
mov edi, dword [esp + 0x10]
and ebx, edi
test edx, ebx
jne 0x46738e
or eax, dword [esp + 0x18]
or eax, edi
or eax, edx
and eax, 0x3f
mov ebx, eax
mov ax, word [esi]
test al, 4
mov dword [esp + 0x10], ebx
je 0x466fbf
cmp ecx, 0x578
jge 0x46738e
movsx edx, word [0x788a8c]
lea eax, [ecx + ecx*4]
shl eax, 3
sub eax, ecx
shl eax, 2
test ebx, ebx
mov dword [eax + 0x618264], edx
mov dword [eax + 0x61825c], 4
movsx edx, word [esi + 2]
mov dword [eax + 0x618260], edx
je 0x466f87
mov dword [eax + 0x618258], 8
jmp 0x466f91
mov dword [eax + 0x618258], 0xc
mov dx, word [esi]
and edx, 0x100
shr edx, 8
mov dword [eax + 0x618268], edx
inc ecx
mov dword [eax + 0x61826c], 0
lea eax, [eax + 0x618274]
mov dword [0x6b94c4], ecx
jmp 0x4670d4
mov cx, word [esi + 2]
movsx eax, cx
test ebx, ebx
lea edx, [eax + eax*4]
lea edx, [edx + edx*4]
lea edx, [edx + edx*8]
lea eax, [eax + edx*4]
mov edx, dword [0x788a70]
jne 0x466fe2
mov edx, dword [0x788a84]
lea edi, [edx + eax*8]
mov eax, dword [edx + eax*8 + 0x324]
sub eax, edi
sub eax, 0x328
sar eax, 5
cmp ax, 0xc3
jle 0x46706f
cmp word [0x4b6d9c], cx
je 0x467063
cmp cx, 0xffff
mov word [0x4b6d9c], cx
jne 0x46702c
mov eax, dword [0x74c7b0]
push 0
push 0
push eax
mov ecx, dword [eax]
call dword [ecx + 0x98]
inc dword [0x74c678]
jmp 0x467063
movsx eax, cx
mov edx, dword [0x74c7b0]
lea ecx, [eax + eax*4]
mov ebx, dword [edx]
lea eax, [eax + ecx*8]
mov ecx, dword [0x847288]
mov eax, dword [ecx + eax*4 + 0x94]
push eax
push 0
push edx
call dword [ebx + 0x98]
mov eax, dword [0x74c678]
mov ebx, dword [esp + 0x10]
inc eax
mov dword [0x74c678], eax
push ebx
push edi
call fcn.00421d40
add esp, 8
xor eax, eax
mov ecx, dword [edi + 0x320]
lea edx, [eax + 1]
mov word [ecx], ax
mov ecx, dword [edi + 0x320]
mov word [ecx + 2], dx
mov edx, dword [edi + 0x320]
lea ecx, [eax + 2]
mov word [edx + 4], cx
mov edx, dword [edi + 0x320]
mov word [edx + 6], ax
mov edx, dword [edi + 0x320]
add eax, 3
mov word [edx + 8], cx
mov ecx, dword [edi + 0x320]
mov word [ecx + 0xa], ax
mov eax, dword [edi + 0x320]
add eax, 0xc
mov dword [edi + 0x320], eax
mov eax, dword [edi + 0x324]
lea edx, [eax + 0x80]
mov dword [edi + 0x324], edx
mov ecx, dword [esi + 0x34]
mov edx, eax
add ecx, 0x24
mov edi, dword [ecx]
mov dword [edx], edi
mov edi, dword [ecx + 4]
mov dword [edx + 4], edi
mov edi, dword [ecx + 8]
mov dword [edx + 8], edi
mov ecx, dword [ecx + 0xc]
mov dword [edx + 0xc], ecx
mov edx, dword [esi + 0x38]
add edx, 0x24
lea ecx, [eax + 0x20]
mov edi, dword [edx]
mov dword [ecx], edi
mov edi, dword [edx + 4]
mov dword [ecx + 4], edi
mov edi, dword [edx + 8]
mov dword [ecx + 8], edi
mov edx, dword [edx + 0xc]
mov dword [ecx + 0xc], edx
mov ecx, dword [esi + 0x3c]
add ecx, 0x24
lea edx, [eax + 0x40]
mov edi, dword [ecx]
mov dword [edx], edi
mov edi, dword [ecx + 4]
mov dword [edx + 4], edi
mov edi, dword [ecx + 8]
mov dword [edx + 8], edi
mov ecx, dword [ecx + 0xc]
mov dword [edx + 0xc], ecx
mov edx, dword [esi + 0x40]
add edx, 0x24
lea ecx, [eax + 0x60]
mov edi, dword [edx]
mov dword [ecx], edi
mov edi, dword [edx + 4]
mov dword [ecx + 4], edi
mov edi, dword [edx + 8]
mov dword [ecx + 8], edi
mov edx, dword [edx + 0xc]
mov dword [ecx + 0xc], edx
mov ecx, dword [esi + 4]
mov dword [eax + 0x18], ecx
mov edx, dword [esi + 8]
mov dword [eax + 0x1c], edx
mov ecx, dword [esi + 0xc]
mov dword [eax + 0x38], ecx
mov edx, dword [esi + 0x10]
mov dword [eax + 0x3c], edx
mov ecx, dword [esi + 0x14]
mov dword [eax + 0x58], ecx
mov edx, dword [esi + 0x18]
mov dword [eax + 0x5c], edx
mov ecx, dword [esi + 0x1c]
mov dword [eax + 0x78], ecx
mov edx, dword [esi + 0x20]
mov dword [eax + 0x7c], edx
mov ecx, dword [esi + 0x34]
mov edx, dword [ecx + 0x38]
mov dword [eax + 0x14], edx
mov ecx, dword [esi + 0x38]
mov edx, dword [ecx + 0x38]
mov dword [eax + 0x34], edx
mov ecx, dword [esi + 0x3c]
mov edx, dword [ecx + 0x38]
mov dword [eax + 0x54], edx
mov ecx, dword [esi + 0x40]
mov edx, dword [ecx + 0x38]
mov ecx, dword [esp + 0x24]
test ecx, ecx
mov dword [eax + 0x74], edx
je 0x467370
mov edx, dword [esi + 0x34]
xor ecx, ecx
mov cl, byte [ebp + 2]
mov ebx, dword [edx + 0x44]
mov edx, 0xff
add ecx, ebx
cmp ecx, edx
jle 0x4671ca
mov byte [eax + 0x12], dl
jmp 0x4671d7
test ecx, ecx
jge 0x4671d4
mov byte [eax + 0x12], 0
jmp 0x4671d7
mov byte [eax + 0x12], cl
mov edi, dword [esi + 0x34]
xor ecx, ecx
mov cl, byte [ebp + 1]
add ecx, dword [edi + 0x48]
cmp ecx, edx
jle 0x4671eb
mov byte [eax + 0x11], dl
jmp 0x4671f8
test ecx, ecx
jge 0x4671f5
mov byte [eax + 0x11], 0
jmp 0x4671f8
mov byte [eax + 0x11], cl
mov ecx, dword [esi + 0x34]
xor ebx, ebx
mov bl, byte [ebp]
mov ecx, dword [ecx + 0x4c]
add ecx, ebx
cmp ecx, edx
jle 0x46720e
mov byte [eax + 0x10], dl
jmp 0x46721b
test ecx, ecx
jge 0x467218
mov byte [eax + 0x10], 0
jmp 0x46721b
mov byte [eax + 0x10], cl
mov cl, byte [ebp + 3]
mov byte [eax + 0x13], cl
mov edi, dword [esi + 0x38]
xor ecx, ecx
mov cl, byte [ebp + 6]
mov ebx, dword [edi + 0x44]
add ecx, ebx
cmp ecx, edx
jle 0x467237
mov byte [eax + 0x32], dl
jmp 0x467244
test ecx, ecx
jge 0x467241
mov byte [eax + 0x32], 0
jmp 0x467244
mov byte [eax + 0x32], cl
mov edi, dword [esi + 0x38]
xor ecx, ecx
mov cl, byte [ebp + 5]
add ecx, dword [edi + 0x48]
cmp ecx, edx
jle 0x467258
mov byte [eax + 0x31], dl
jmp 0x467265
test ecx, ecx
jge 0x467262
mov byte [eax + 0x31], 0
jmp 0x467265
mov byte [eax + 0x31], cl
mov edi, dword [esi + 0x38]
xor ecx, ecx
mov cl, byte [ebp + 4]
add ecx, dword [edi + 0x4c]
cmp ecx, edx
jle 0x467279
mov byte [eax + 0x30], dl
jmp 0x467286
test ecx, ecx
jge 0x467283
mov byte [eax + 0x30], 0
jmp 0x467286
mov byte [eax + 0x30], cl
mov cl, byte [ebp + 7]
mov byte [eax + 0x33], cl
mov edi, dword [esi + 0x3c]
xor ecx, ecx
mov cl, byte [ebp + 0xa]
mov ebx, dword [edi + 0x44]
add ecx, ebx
cmp ecx, edx
jle 0x4672a2
mov byte [eax + 0x52], dl
jmp 0x4672af
test ecx, ecx
jge 0x4672ac
mov byte [eax + 0x52], 0
jmp 0x4672af
mov byte [eax + 0x52], cl
mov edi, dword [esi + 0x3c]
xor ecx, ecx
mov cl, byte [ebp + 9]
add ecx, dword [edi + 0x48]
cmp ecx, edx
jle 0x4672c3
mov byte [eax + 0x51], dl
jmp 0x4672d0
test ecx, ecx
jge 0x4672cd
mov byte [eax + 0x51], 0
jmp 0x4672d0
mov byte [eax + 0x51], cl
mov edi, dword [esi + 0x3c]
xor ecx, ecx
mov cl, byte [ebp + 8]
add ecx, dword [edi + 0x4c]
cmp ecx, edx
jle 0x4672e4
mov byte [eax + 0x50], dl
jmp 0x4672f1
test ecx, ecx
jge 0x4672ee
mov byte [eax + 0x50], 0
jmp 0x4672f1
mov byte [eax + 0x50], cl
mov cl, byte [ebp + 0xb]
mov byte [eax + 0x53], cl
mov edi, dword [esi + 0x40]
xor ecx, ecx
mov cl, byte [ebp + 0xe]
mov ebx, dword [edi + 0x44]
add ecx, ebx
cmp ecx, edx
jle 0x46730d
mov byte [eax + 0x72], dl
jmp 0x46731a
test ecx, ecx
jge 0x467317
mov byte [eax + 0x72], 0
jmp 0x46731a
mov byte [eax + 0x72], cl
mov edi, dword [esi + 0x40]
xor ecx, ecx
mov cl, byte [ebp + 0xd]
add ecx, dword [edi + 0x48]
cmp ecx, edx
jle 0x46732e
mov byte [eax + 0x71], dl
jmp 0x46733b
test ecx, ecx
jge 0x467338
mov byte [eax + 0x71], 0
jmp 0x46733b
mov byte [eax + 0x71], cl
mov edi, dword [esi + 0x40]
xor ecx, ecx
mov cl, byte [ebp + 0xc]
add ecx, dword [edi + 0x4c]
cmp ecx, edx
jle 0x467355
mov byte [eax + 0x70], dl
mov dl, byte [ebp + 0xf]
mov byte [eax + 0x73], dl
jmp 0x467388
test ecx, ecx
jge 0x467365
mov byte [eax + 0x70], 0
mov dl, byte [ebp + 0xf]
mov byte [eax + 0x73], dl
jmp 0x467388
mov byte [eax + 0x70], cl
mov dl, byte [ebp + 0xf]
mov byte [eax + 0x73], dl
jmp 0x467388
mov ecx, dword [ebp]
mov dword [eax + 0x10], ecx
mov edx, dword [ebp + 4]
mov dword [eax + 0x30], edx
mov ecx, dword [ebp + 8]
mov dword [eax + 0x50], ecx
mov edx, dword [ebp + 0xc]
mov dword [eax + 0x70], edx
mov ecx, dword [0x6b94c4]
mov eax, dword [esp + 0x14]
add ebp, 0x10
add esi, 0x44
dec eax
mov dword [esp + 0x14], eax
jne 0x466eb4
mov edx, dword [esp + 0x20]
mov dword [esp + 0x10], ebp
movsx eax, word [edx + 0x26]
test eax, eax
je 0x4677db
mov dword [esp + 0x14], eax
test byte [esi], 2
jne 0x4673f8
mov edx, dword [esi + 0x3c]
mov eax, dword [esi + 0x38]
mov edi, dword [esi + 0x34]
fld dword [edx + 0x28]
fsub dword [eax + 0x28]
fld dword [edi + 0x24]
fsub dword [eax + 0x24]
fmulp st(1)
fld dword [edi + 0x28]
fsub dword [eax + 0x28]
fld dword [edx + 0x24]
fsub dword [eax + 0x24]
fmulp st(1)
fsubp st(1)
fcomp dword [0x4b0004]
fnstsw ax
test ah, 1
jne 0x4677be
mov eax, dword [esi + 0x3c]
mov edi, dword [esi + 0x34]
mov edx, dword [eax + 0x54]
mov eax, dword [esi + 0x38]
mov edi, dword [edi + 0x54]
mov eax, dword [eax + 0x54]
mov ebx, eax
and ebx, edx
test edi, ebx
jne 0x4677be
or eax, edx
or eax, edi
and eax, 0x3f
mov ebx, eax
mov al, byte [esi]
test al, 4
mov dword [esp + 0x10], ebx
je 0x4674b8
cmp ecx, 0x578
jge 0x4677be
movsx edx, word [0x788a8c]
lea eax, [ecx + ecx*4]
shl eax, 3
sub eax, ecx
shl eax, 2
test ebx, ebx
mov dword [eax + 0x618264], edx
mov dword [eax + 0x61825c], 3
movsx edx, word [esi + 2]
mov dword [eax + 0x618260], edx
je 0x467480
mov dword [eax + 0x618258], 8
jmp 0x46748a
mov ecx, dword [0x6b94c4]
jmp 0x4673ab
mov dword [eax + 0x618258], 0xc
mov dx, word [esi]
and edx, 0x100
shr edx, 8
mov dword [eax + 0x618268], edx
inc ecx
mov dword [eax + 0x61826c], 0
lea eax, [eax + 0x618274]
mov dword [0x6b94c4], ecx
jmp 0x4675a9
mov cx, word [esi + 2]
movsx eax, cx
test ebx, ebx
lea edx, [eax + eax*4]
lea edx, [edx + edx*4]
lea edx, [edx + edx*8]
lea eax, [eax + edx*4]
mov edx, dword [0x788a70]
jne 0x4674db
mov edx, dword [0x788a84]
lea edi, [edx + eax*8]
mov eax, dword [edx + eax*8 + 0x324]
sub eax, edi
sub eax, 0x328
sar eax, 5
cmp ax, 0xc3
jle 0x467568
cmp word [0x4b6d9c], cx
je 0x46755c
cmp cx, 0xffff
mov word [0x4b6d9c], cx
jne 0x467525
mov eax, dword [0x74c7b0]
push 0
push 0
push eax
mov ecx, dword [eax]
call dword [ecx + 0x98]
inc dword [0x74c678]
jmp 0x46755c
movsx eax, cx
mov edx, dword [0x74c7b0]
lea ecx, [eax + eax*4]
mov ebx, dword [edx]
lea eax, [eax + ecx*8]
mov ecx, dword [0x847288]
mov eax, dword [ecx + eax*4 + 0x94]
push eax
push 0
push edx
call dword [ebx + 0x98]
mov eax, dword [0x74c678]
mov ebx, dword [esp + 0x10]
inc eax
mov dword [0x74c678], eax
push ebx
push edi
call fcn.00421d40
add esp, 8
xor eax, eax
mov ecx, dword [edi + 0x320]
lea edx, [eax + 1]
mov word [ecx], ax
mov ecx, dword [edi + 0x320]
add eax, 2
mov word [ecx + 2], dx
mov edx, dword [edi + 0x320]
mov word [edx + 4], ax
mov eax, dword [edi + 0x320]
add eax, 6
mov dword [edi + 0x320], eax
mov eax, dword [edi + 0x324]
lea ecx, [eax + 0x60]
mov dword [edi + 0x324], ecx
mov edx, dword [esi + 0x34]
mov ecx, eax
add edx, 0x24
mov edi, dword [edx]
mov dword [ecx], edi
mov edi, dword [edx + 4]
mov dword [ecx + 4], edi
mov edi, dword [edx + 8]
mov dword [ecx + 8], edi
mov edx, dword [edx + 0xc]
mov dword [ecx + 0xc], edx
mov ecx, dword [esi + 0x38]
add ecx, 0x24
lea edx, [eax + 0x20]
mov edi, dword [ecx]
mov dword [edx], edi
mov edi, dword [ecx + 4]
mov dword [edx + 4], edi
mov edi, dword [ecx + 8]
mov dword [edx + 8], edi
mov ecx, dword [ecx + 0xc]
mov dword [edx + 0xc], ecx
mov edx, dword [esi + 0x3c]
add edx, 0x24
lea ecx, [eax + 0x40]
mov edi, dword [edx]
mov dword [ecx], edi
mov edi, dword [edx + 4]
mov dword [ecx + 4], edi
mov edi, dword [edx + 8]
mov dword [ecx + 8], edi
mov edx, dword [edx + 0xc]
mov dword [ecx + 0xc], edx
mov ecx, dword [esi + 4]
mov dword [eax + 0x18], ecx
mov edx, dword [esi + 8]
mov dword [eax + 0x1c], edx
mov ecx, dword [esi + 0xc]
mov dword [eax + 0x38], ecx
mov edx, dword [esi + 0x10]
mov dword [eax + 0x3c], edx
mov ecx, dword [esi + 0x14]
mov dword [eax + 0x58], ecx
mov edx, dword [esi + 0x18]
mov dword [eax + 0x5c], edx
mov ecx, dword [esi + 0x34]
mov edx, dword [ecx + 0x38]
mov dword [eax + 0x14], edx
mov ecx, dword [esi + 0x38]
mov edx, dword [ecx + 0x38]
mov dword [eax + 0x34], edx
mov ecx, dword [esi + 0x3c]
mov edx, dword [ecx + 0x38]
mov ecx, dword [esp + 0x24]
test ecx, ecx
mov dword [eax + 0x54], edx
je 0x4677a6
mov edx, dword [esi + 0x34]
xor ecx, ecx
mov cl, byte [ebp + 2]
mov ebx, dword [edx + 0x44]
mov edx, 0xff
add ecx, ebx
cmp ecx, edx
jle 0x46766b
mov byte [eax + 0x12], dl
jmp 0x467678
test ecx, ecx
jge 0x467675
mov byte [eax + 0x12], 0
jmp 0x467678
mov byte [eax + 0x12], cl
mov edi, dword [esi + 0x34]
xor ecx, ecx
mov cl, byte [ebp + 1]
add ecx, dword [edi + 0x48]
cmp ecx, edx
jle 0x46768c
mov byte [eax + 0x11], dl
jmp 0x467699
test ecx, ecx
jge 0x467696
mov byte [eax + 0x11], 0
jmp 0x467699
mov byte [eax + 0x11], cl
mov ecx, dword [esi + 0x34]
xor ebx, ebx
mov bl, byte [ebp]
mov ecx, dword [ecx + 0x4c]
add ecx, ebx
cmp ecx, edx
jle 0x4676af
mov byte [eax + 0x10], dl
jmp 0x4676bc
test ecx, ecx
jge 0x4676b9
mov byte [eax + 0x10], 0
jmp 0x4676bc
mov byte [eax + 0x10], cl
mov cl, byte [ebp + 3]
mov byte [eax + 0x13], cl
mov edi, dword [esi + 0x38]
xor ecx, ecx
mov cl, byte [ebp + 6]
mov ebx, dword [edi + 0x44]
add ecx, ebx
cmp ecx, edx
jle 0x4676d8
mov byte [eax + 0x32], dl
jmp 0x4676e5
test ecx, ecx
jge 0x4676e2
mov byte [eax + 0x32], 0
jmp 0x4676e5
mov byte [eax + 0x32], cl
mov edi, dword [esi + 0x38]
xor ecx, ecx
mov cl, byte [ebp + 5]
add ecx, dword [edi + 0x48]
cmp ecx, edx
jle 0x4676f9
mov byte [eax + 0x31], dl
jmp 0x467706
test ecx, ecx
jge 0x467703
mov byte [eax + 0x31], 0
jmp 0x467706
mov byte [eax + 0x31], cl
mov edi, dword [esi + 0x38]
xor ecx, ecx
mov cl, byte [ebp + 4]
add ecx, dword [edi + 0x4c]
cmp ecx, edx
jle 0x46771a
mov byte [eax + 0x30], dl
jmp 0x467727
test ecx, ecx
jge 0x467724
mov byte [eax + 0x30], 0
jmp 0x467727
mov byte [eax + 0x30], cl
mov cl, byte [ebp + 7]
mov byte [eax + 0x33], cl
mov edi, dword [esi + 0x3c]
xor ecx, ecx
mov cl, byte [ebp + 0xa]
mov ebx, dword [edi + 0x44]
add ecx, ebx
cmp ecx, edx
jle 0x467743
mov byte [eax + 0x52], dl
jmp 0x467750
test ecx, ecx
jge 0x46774d
mov byte [eax + 0x52], 0
jmp 0x467750
mov byte [eax + 0x52], cl
mov edi, dword [esi + 0x3c]
xor ecx, ecx
mov cl, byte [ebp + 9]
add ecx, dword [edi + 0x48]
cmp ecx, edx
jle 0x467764
mov byte [eax + 0x51], dl
jmp 0x467771
test ecx, ecx
jge 0x46776e
mov byte [eax + 0x51], 0
jmp 0x467771
mov byte [eax + 0x51], cl
mov edi, dword [esi + 0x3c]
xor ecx, ecx
mov cl, byte [ebp + 8]
add ecx, dword [edi + 0x4c]
cmp ecx, edx
jle 0x46778b
mov byte [eax + 0x50], dl
mov dl, byte [ebp + 0xb]
mov byte [eax + 0x53], dl
jmp 0x4677b8
test ecx, ecx
jge 0x46779b
mov byte [eax + 0x50], 0
mov dl, byte [ebp + 0xb]
mov byte [eax + 0x53], dl
jmp 0x4677b8
mov byte [eax + 0x50], cl
mov dl, byte [ebp + 0xb]
mov byte [eax + 0x53], dl
jmp 0x4677b8
mov ecx, dword [ebp]
mov dword [eax + 0x10], ecx
mov edx, dword [ebp + 4]
mov dword [eax + 0x30], edx
mov ecx, dword [ebp + 8]
mov dword [eax + 0x50], ecx
mov ecx, dword [0x6b94c4]
mov eax, dword [esp + 0x14]
add ebp, 0x10
add esi, 0x44
dec eax
mov dword [esp + 0x14], eax
jne 0x4673bb
mov edx, dword [esp + 0x20]
mov dword [esp + 0x10], ebp
movsx eax, word [edx + 0x28]
test eax, eax
je 0x467c79
mov dword [esp + 0x14], eax
test byte [esi], 2
jne 0x467828
mov edx, dword [esi + 0x3c]
mov eax, dword [esi + 0x38]
mov edi, dword [esi + 0x34]
fld dword [edx + 0x28]
fsub dword [eax + 0x28]
fld dword [edi + 0x24]
fsub dword [eax + 0x24]
fmulp st(1)
fld dword [edi + 0x28]
fsub dword [eax + 0x28]
fld dword [edx + 0x24]
fsub dword [eax + 0x24]
fmulp st(1)
fsubp st(1)
fcomp dword [0x4b0004]
fnstsw ax
test ah, 1
jne 0x467c5c
mov eax, dword [esi + 0x3c]
mov edx, dword [esi + 0x40]
mov edi, dword [eax + 0x54]
mov eax, dword [esi + 0x38]
mov edx, dword [edx + 0x54]
mov ebx, dword [eax + 0x54]
mov eax, dword [esi + 0x34]
mov eax, dword [eax + 0x54]
mov ebp, eax
and ebp, edi
and ebp, edx
test ebx, ebp
jne 0x467c58
or eax, edi
or eax, edx
or eax, ebx
and eax, 0x3f
mov ebp, eax
mov ax, word [esi]
test al, 4
je 0x4678e4
cmp ecx, 0x578
jge 0x467c58
movsx edx, word [0x788a8c]
lea eax, [ecx + ecx*4]
shl eax, 3
sub eax, ecx
shl eax, 2
test ebp, ebp
mov dword [eax + 0x618264], edx
mov dword [eax + 0x61825c], 4
mov dword [eax + 0x618260], 0xffffffff
je 0x4678ac
mov dword [eax + 0x618258], 8
jmp 0x4678b6
mov dword [eax + 0x618258], 0xc
mov dx, word [esi]
and edx, 0x100
shr edx, 8
mov dword [eax + 0x618268], edx
inc ecx
mov dword [eax + 0x61826c], 0
lea eax, [eax + 0x618274]
mov dword [0x6b94c4], ecx
jmp 0x4679b2
mov edi, dword [0x788a68]
test ebp, ebp
jne 0x4678f4
mov edi, dword [0x785d30]
mov ecx, dword [edi + 0x324]
mov eax, 0x2aaaaaab
sub ecx, edi
sub ecx, 0x328
imul ecx
sar edx, 2
mov eax, edx
shr eax, 0x1f
add edx, eax
cmp dx, 0xc3
jle 0x467950
or eax, 0xffffffff
cmp word [0x4b6d9c], ax
je 0x467944
mov word [0x4b6d9c], ax
mov eax, dword [0x74c7b0]
push 0
push 0
mov ecx, dword [eax]
push eax
call dword [ecx + 0x98]
inc dword [0x74c678]
push ebp
push edi
call fcn.00421c90
add esp, 8
xor edx, edx
mov eax, dword [edi + 0x320]
lea ecx, [edx + 1]
mov word [eax], dx
mov eax, dword [edi + 0x320]
mov word [eax + 2], cx
mov ecx, dword [edi + 0x320]
lea eax, [edx + 2]
mov word [ecx + 4], ax
mov ecx, dword [edi + 0x320]
mov word [ecx + 6], dx
mov ecx, dword [edi + 0x320]
add edx, 3
mov word [ecx + 8], ax
mov eax, dword [edi + 0x320]
mov word [eax + 0xa], dx
mov eax, dword [edi + 0x320]
add eax, 0xc
mov dword [edi + 0x320], eax
mov eax, dword [edi + 0x324]
lea ecx, [eax + 0x60]
mov dword [edi + 0x324], ecx
mov edx, dword [esi + 0x34]
mov ecx, eax
add edx, 0x24
mov edi, dword [edx]
mov dword [ecx], edi
mov edi, dword [edx + 4]
mov dword [ecx + 4], edi
mov edi, dword [edx + 8]
mov dword [ecx + 8], edi
mov edx, dword [edx + 0xc]
mov dword [ecx + 0xc], edx
mov ecx, dword [esi + 0x38]
add ecx, 0x24
lea edx, [eax + 0x18]
mov edi, dword [ecx]
mov dword [edx], edi
mov edi, dword [ecx + 4]
mov dword [edx + 4], edi
mov edi, dword [ecx + 8]
mov dword [edx + 8], edi
mov ecx, dword [ecx + 0xc]
mov dword [edx + 0xc], ecx
mov edx, dword [esi + 0x3c]
add edx, 0x24
lea ecx, [eax + 0x30]
mov edi, dword [edx]
mov dword [ecx], edi
mov edi, dword [edx + 4]
mov dword [ecx + 4], edi
mov edi, dword [edx + 8]
mov dword [ecx + 8], edi
mov edx, dword [edx + 0xc]
mov dword [ecx + 0xc], edx
mov ecx, dword [esi + 0x40]
add ecx, 0x24
lea edx, [eax + 0x48]
mov edi, dword [ecx]
mov dword [edx], edi
mov edi, dword [ecx + 4]
mov dword [edx + 4], edi
mov edi, dword [ecx + 8]
mov dword [edx + 8], edi
mov ecx, dword [ecx + 0xc]
mov dword [edx + 0xc], ecx
mov edx, dword [esi + 0x34]
mov ecx, dword [edx + 0x38]
mov dword [eax + 0x14], ecx
mov edx, dword [esi + 0x38]
mov ecx, dword [edx + 0x38]
mov dword [eax + 0x2c], ecx
mov edx, dword [esi + 0x3c]
mov ecx, dword [edx + 0x38]
mov dword [eax + 0x44], ecx
mov edx, dword [esi + 0x40]
mov ecx, dword [edx + 0x38]
mov dword [eax + 0x5c], ecx
mov ecx, dword [esp + 0x24]
test ecx, ecx
je 0x467c34
mov ebp, dword [esp + 0x10]
mov edx, dword [esi + 0x34]
xor ecx, ecx
mov cl, byte [ebp + 2]
mov ebx, dword [edx + 0x44]
add ecx, ebx
mov edx, 0xff
cmp ecx, edx
jle 0x467a7c
mov byte [eax + 0x12], dl
jmp 0x467a89
test ecx, ecx
jge 0x467a86
mov byte [eax + 0x12], 0
jmp 0x467a89
mov byte [eax + 0x12], cl
mov edi, dword [esi + 0x34]
xor ecx, ecx
mov cl, byte [ebp + 1]
add ecx, dword [edi + 0x48]
cmp ecx, edx
jle 0x467a9d
mov byte [eax + 0x11], dl
jmp 0x467aaa
test ecx, ecx
jge 0x467aa7
mov byte [eax + 0x11], 0
jmp 0x467aaa
mov byte [eax + 0x11], cl
mov ecx, dword [esi + 0x34]
xor ebx, ebx
mov bl, byte [ebp]
mov ecx, dword [ecx + 0x4c]
add ecx, ebx
cmp ecx, edx
jle 0x467ac0
mov byte [eax + 0x10], dl
jmp 0x467acd
test ecx, ecx
jge 0x467aca
mov byte [eax + 0x10], 0
jmp 0x467acd
mov byte [eax + 0x10], cl
mov cl, byte [ebp + 3]
mov byte [eax + 0x13], cl
mov edi, dword [esi + 0x38]
xor ecx, ecx
mov cl, byte [ebp + 6]
mov ebx, dword [edi + 0x44]
add ecx, ebx
cmp ecx, edx
jle 0x467ae9
mov byte [eax + 0x2a], dl
jmp 0x467af6
test ecx, ecx
jge 0x467af3
mov byte [eax + 0x2a], 0
jmp 0x467af6
mov byte [eax + 0x2a], cl
mov edi, dword [esi + 0x38]
xor ecx, ecx
mov cl, byte [ebp + 5]
add ecx, dword [edi + 0x48]
cmp ecx, edx
jle 0x467b0a
mov byte [eax + 0x29], dl
jmp 0x467b17
test ecx, ecx
jge 0x467b14
mov byte [eax + 0x29], 0
jmp 0x467b17
mov byte [eax + 0x29], cl
mov edi, dword [esi + 0x38]
xor ecx, ecx
mov cl, byte [ebp + 4]
add ecx, dword [edi + 0x4c]
cmp ecx, edx
jle 0x467b2b
mov byte [eax + 0x28], dl
jmp 0x467b38
test ecx, ecx
jge 0x467b35
mov byte [eax + 0x28], 0
jmp 0x467b38
mov byte [eax + 0x28], cl
mov cl, byte [ebp + 7]
mov byte [eax + 0x2b], cl
mov edi, dword [esi + 0x3c]
xor ecx, ecx
mov cl, byte [ebp + 0xa]
mov ebx, dword [edi + 0x44]
add ecx, ebx
cmp ecx, edx
jle 0x467b54
mov byte [eax + 0x42], dl
jmp 0x467b61
test ecx, ecx
jge 0x467b5e
mov byte [eax + 0x42], 0
jmp 0x467b61
mov byte [eax + 0x42], cl
mov edi, dword [esi + 0x3c]
xor ecx, ecx
mov cl, byte [ebp + 9]
add ecx, dword [edi + 0x48]
cmp ecx, edx
jle 0x467b75
mov byte [eax + 0x41], dl
jmp 0x467b82
test ecx, ecx
jge 0x467b7f
mov byte [eax + 0x41], 0
jmp 0x467b82
mov byte [eax + 0x41], cl
mov edi, dword [esi + 0x3c]
xor ecx, ecx
mov cl, byte [ebp + 8]
add ecx, dword [edi + 0x4c]
cmp ecx, edx
jle 0x467b96
mov byte [eax + 0x40], dl
jmp 0x467ba3
test ecx, ecx
jge 0x467ba0
mov byte [eax + 0x40], 0
jmp 0x467ba3
mov byte [eax + 0x40], cl
mov cl, byte [ebp + 0xb]
mov byte [eax + 0x43], cl
mov edi, dword [esi + 0x40]
xor ecx, ecx
mov cl, byte [ebp + 0xe]
mov ebx, dword [edi + 0x44]
add ecx, ebx
cmp ecx, edx
jle 0x467bbf
mov byte [eax + 0x5a], dl
jmp 0x467bcc
test ecx, ecx
jge 0x467bc9
mov byte [eax + 0x5a], 0
jmp 0x467bcc
mov byte [eax + 0x5a], cl
mov edi, dword [esi + 0x40]
xor ecx, ecx
mov cl, byte [ebp + 0xd]
add ecx, dword [edi + 0x48]
cmp ecx, edx
jle 0x467be0
mov byte [eax + 0x59], dl
jmp 0x467bed
test ecx, ecx
jge 0x467bea
mov byte [eax + 0x59], 0
jmp 0x467bed
mov byte [eax + 0x59], cl
mov edi, dword [esi + 0x40]
xor ecx, ecx
mov cl, byte [ebp + 0xc]
add ecx, dword [edi + 0x4c]
cmp ecx, edx
jle 0x467c0d
mov byte [eax + 0x58], dl
mov dl, byte [ebp + 0xf]
mov byte [eax + 0x5b], dl
mov ecx, dword [0x6b94c4]
jmp 0x467c5c
test ecx, ecx
jge 0x467c23
mov byte [eax + 0x58], 0
mov dl, byte [ebp + 0xf]
mov byte [eax + 0x5b], dl
mov ecx, dword [0x6b94c4]
jmp 0x467c5c
mov byte [eax + 0x58], cl
mov dl, byte [ebp + 0xf]
mov byte [eax + 0x5b], dl
mov ecx, dword [0x6b94c4]
jmp 0x467c5c
mov ebp, dword [esp + 0x10]
mov ecx, dword [ebp]
mov dword [eax + 0x10], ecx
mov edx, dword [ebp + 4]
mov dword [eax + 0x28], edx
mov ecx, dword [ebp + 8]
mov dword [eax + 0x40], ecx
mov edx, dword [ebp + 0xc]
mov dword [eax + 0x58], edx
mov ecx, dword [0x6b94c4]
jmp 0x467c5c
mov ebp, dword [esp + 0x10]
mov eax, dword [esp + 0x14]
add ebp, 0x10
add esi, 0x44
dec eax
mov dword [esp + 0x10], ebp
mov dword [esp + 0x14], eax
jne 0x4677eb
mov edx, dword [esp + 0x20]
movsx eax, word [edx + 0x2a]
test eax, eax
je 0x46802a
mov dword [esp + 0x20], eax
test byte [esi], 2
jne 0x467cc6
mov edx, dword [esi + 0x3c]
mov eax, dword [esi + 0x38]
mov edi, dword [esi + 0x34]
fld dword [edx + 0x28]
fsub dword [eax + 0x28]
fld dword [edi + 0x24]
fsub dword [eax + 0x24]
fmulp st(1)
fld dword [edi + 0x28]
fsub dword [eax + 0x28]
fld dword [edx + 0x24]
fsub dword [eax + 0x24]
fmulp st(1)
fsubp st(1)
fcomp dword [0x4b0004]
fnstsw ax
test ah, 1
jne 0x468015
mov eax, dword [esi + 0x3c]
mov edi, dword [esi + 0x34]
mov edx, dword [eax + 0x54]
mov eax, dword [esi + 0x38]
mov edi, dword [edi + 0x54]
mov eax, dword [eax + 0x54]
mov ebx, eax
and ebx, edi
test edx, ebx
jne 0x468015
or eax, edi
or eax, edx
and eax, 0x3f
mov ebx, eax
mov al, byte [esi]
test al, 4
je 0x467d77
cmp ecx, 0x578
jge 0x468015
movsx edx, word [0x788a8c]
lea eax, [ecx + ecx*4]
shl eax, 3
sub eax, ecx
shl eax, 2
test ebx, ebx
mov dword [eax + 0x618264], edx
mov dword [eax + 0x61825c], 3
mov dword [eax + 0x618260], 0xffffffff
je 0x467d3f
mov dword [eax + 0x618258], 8
jmp 0x467d49
mov dword [eax + 0x618258], 0xc
mov dx, word [esi]
and edx, 0x100
shr edx, 8
mov dword [eax + 0x618268], edx
inc ecx
mov dword [eax + 0x61826c], 0
lea eax, [eax + 0x618274]
mov dword [0x6b94c4], ecx
jmp 0x467e24
mov edi, dword [0x788a68]
test ebx, ebx
jne 0x467d87
mov edi, dword [0x785d30]
mov ecx, dword [edi + 0x324]
mov eax, 0x2aaaaaab
sub ecx, edi
sub ecx, 0x328
imul ecx
sar edx, 2
mov eax, edx
shr eax, 0x1f
add edx, eax
cmp dx, 0xc3
jle 0x467de3
or eax, 0xffffffff
cmp word [0x4b6d9c], ax
je 0x467dd7
mov word [0x4b6d9c], ax
mov eax, dword [0x74c7b0]
push 0
push 0
mov ecx, dword [eax]
push eax
call dword [ecx + 0x98]
inc dword [0x74c678]
push ebx
push edi
call fcn.00421c90
add esp, 8
xor edx, edx
mov eax, dword [edi + 0x320]
lea ecx, [edx + 1]
mov word [eax], dx
mov eax, dword [edi + 0x320]
add edx, 2
mov word [eax + 2], cx
mov ecx, dword [edi + 0x320]
mov word [ecx + 4], dx
mov eax, dword [edi + 0x320]
add eax, 6
mov dword [edi + 0x320], eax
mov eax, dword [edi + 0x324]
lea edx, [eax + 0x48]
mov dword [edi + 0x324], edx
mov ecx, dword [esi + 0x34]
mov edx, eax
add ecx, 0x24
mov edi, dword [ecx]
mov dword [edx], edi
mov edi, dword [ecx + 4]
mov dword [edx + 4], edi
mov edi, dword [ecx + 8]
mov dword [edx + 8], edi
mov ecx, dword [ecx + 0xc]
mov dword [edx + 0xc], ecx
mov edx, dword [esi + 0x38]
add edx, 0x24
lea ecx, [eax + 0x18]
mov edi, dword [edx]
mov dword [ecx], edi
mov edi, dword [edx + 4]
mov dword [ecx + 4], edi
mov edi, dword [edx + 8]
mov dword [ecx + 8], edi
mov edx, dword [edx + 0xc]
mov dword [ecx + 0xc], edx
mov ecx, dword [esi + 0x3c]
add ecx, 0x24
lea edx, [eax + 0x30]
mov edi, dword [ecx]
mov dword [edx], edi
mov edi, dword [ecx + 4]
mov dword [edx + 4], edi
mov edi, dword [ecx + 8]
mov dword [edx + 8], edi
mov ecx, dword [ecx + 0xc]
mov dword [edx + 0xc], ecx
mov edx, dword [esi + 0x34]
mov ecx, dword [edx + 0x38]
mov dword [eax + 0x14], ecx
mov edx, dword [esi + 0x38]
mov ecx, dword [edx + 0x38]
mov dword [eax + 0x2c], ecx
mov edx, dword [esi + 0x3c]
mov ecx, dword [edx + 0x38]
mov dword [eax + 0x44], ecx
mov ecx, dword [esp + 0x24]
test ecx, ecx
je 0x467ffd
mov edx, dword [esi + 0x34]
xor ecx, ecx
mov cl, byte [ebp + 2]
mov ebx, dword [edx + 0x44]
mov edx, 0xff
add ecx, ebx
cmp ecx, edx
jle 0x467ec2
mov byte [eax + 0x12], dl
jmp 0x467ecf
test ecx, ecx
jge 0x467ecc
mov byte [eax + 0x12], 0
jmp 0x467ecf
mov byte [eax + 0x12], cl
mov edi, dword [esi + 0x34]
xor ecx, ecx
mov cl, byte [ebp + 1]
add ecx, dword [edi + 0x48]
cmp ecx, edx
jle 0x467ee3
mov byte [eax + 0x11], dl
jmp 0x467ef0
test ecx, ecx
jge 0x467eed
mov byte [eax + 0x11], 0
jmp 0x467ef0
mov byte [eax + 0x11], cl
mov ecx, dword [esi + 0x34]
xor ebx, ebx
mov bl, byte [ebp]
mov ecx, dword [ecx + 0x4c]
add ecx, ebx
cmp ecx, edx
jle 0x467f06
mov byte [eax + 0x10], dl
jmp 0x467f13
test ecx, ecx
jge 0x467f10
mov byte [eax + 0x10], 0
jmp 0x467f13
mov byte [eax + 0x10], cl
mov cl, byte [ebp + 3]
mov byte [eax + 0x13], cl
mov edi, dword [esi + 0x38]
xor ecx, ecx
mov cl, byte [ebp + 6]
mov ebx, dword [edi + 0x44]
add ecx, ebx
cmp ecx, edx
jle 0x467f2f
mov byte [eax + 0x2a], dl
jmp 0x467f3c
test ecx, ecx
jge 0x467f39
mov byte [eax + 0x2a], 0
jmp 0x467f3c
mov byte [eax + 0x2a], cl
mov edi, dword [esi + 0x38]
xor ecx, ecx
mov cl, byte [ebp + 5]
add ecx, dword [edi + 0x48]
cmp ecx, edx
jle 0x467f50
mov byte [eax + 0x29], dl
jmp 0x467f5d
test ecx, ecx
jge 0x467f5a
mov byte [eax + 0x29], 0
jmp 0x467f5d
mov byte [eax + 0x29], cl
mov edi, dword [esi + 0x38]
xor ecx, ecx
mov cl, byte [ebp + 4]
add ecx, dword [edi + 0x4c]
cmp ecx, edx
jle 0x467f71
mov byte [eax + 0x28], dl
jmp 0x467f7e
test ecx, ecx
jge 0x467f7b
mov byte [eax + 0x28], 0
jmp 0x467f7e
mov byte [eax + 0x28], cl
mov cl, byte [ebp + 7]
mov byte [eax + 0x2b], cl
mov edi, dword [esi + 0x3c]
xor ecx, ecx
mov cl, byte [ebp + 0xa]
mov ebx, dword [edi + 0x44]
add ecx, ebx
cmp ecx, edx
jle 0x467f9a
mov byte [eax + 0x42], dl
jmp 0x467fa7
test ecx, ecx
jge 0x467fa4
mov byte [eax + 0x42], 0
jmp 0x467fa7
mov byte [eax + 0x42], cl
mov edi, dword [esi + 0x3c]
xor ecx, ecx
mov cl, byte [ebp + 9]
add ecx, dword [edi + 0x48]
cmp ecx, edx
jle 0x467fbb
mov byte [eax + 0x41], dl
jmp 0x467fc8
test ecx, ecx
jge 0x467fc5
mov byte [eax + 0x41], 0
jmp 0x467fc8
mov byte [eax + 0x41], cl
mov edi, dword [esi + 0x3c]
xor ecx, ecx
mov cl, byte [ebp + 8]
add ecx, dword [edi + 0x4c]
cmp ecx, edx
jle 0x467fe2
mov byte [eax + 0x40], dl
mov dl, byte [ebp + 0xb]
mov byte [eax + 0x43], dl
jmp 0x46800f
test ecx, ecx
jge 0x467ff2
mov byte [eax + 0x40], 0
mov dl, byte [ebp + 0xb]
mov byte [eax + 0x43], dl
jmp 0x46800f
mov byte [eax + 0x40], cl
mov dl, byte [ebp + 0xb]
mov byte [eax + 0x43], dl
jmp 0x46800f
mov ecx, dword [ebp]
mov dword [eax + 0x10], ecx
mov edx, dword [ebp + 4]
mov dword [eax + 0x28], edx
mov ecx, dword [ebp + 8]
mov dword [eax + 0x40], ecx
mov ecx, dword [0x6b94c4]
mov eax, dword [esp + 0x20]
add ebp, 0x10
add esi, 0x44
dec eax
mov dword [esp + 0x20], eax
jne 0x467c89
pop edi
pop esi
pop ebp
pop ebx
add esp, 0xc
ret