Function at 0x4309f0
Capabilities:
Encode data using xor
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x5c
mov eax, dword [0x47400c]
xor eax, ebp
mov dword [ebp - 4], eax
push ebx
mov ebx, dword [0x59d350]
mov eax, ebx
push esi
push edi
mov edi, ecx
mov dword [ebp - 0x44], eax
mov eax, dword [eax + 0x3ea0]
and byte [edi + 0xa0], 0xfb
cmp dword [edi + 0x18], 0
mov dword [edi + 0x84], eax
mov dword [edi + 0x7c], 0
mov dword [edi + 0x78], 0
jne 0x430b14
call fcn.004306d0
xorps xmm0, xmm0
mov dword [ebp - 0x1c], 0
lea edx, [ebp - 0x24]
movq qword [ebp - 0x24], xmm0
mov ecx, edi
call fcn.00430680
mov ecx, dword [ebp - 0x1c]
xor eax, eax
mov esi, dword [ebp - 0x20]
cmp ecx, 1
mov edx, dword [ebp - 0x24]
cmove eax, esi
mov dword [edi + 0x78], edx
cmp dword [edi + 0x90], 0
mov dword [edi + 0x7c], eax
mov dword [edi + 0x80], ecx
jne 0x430a8b
test esi, esi
je 0x430af1
mov eax, dword [esi]
mov dword [edi + 0x90], eax
test esi, esi
je 0x430af1
mov eax, dword [esi + 0x2c]
mov ecx, 1
mov eax, dword [eax]
movups xmm0, xmmword [eax + 0x10]
movups xmmword [edi + 0x50], xmm0
movq xmm0, qword [eax + 0x20]
movq qword [edi + 0x60], xmm0
mov eax, dword [eax + 0x28]
mov dword [edi + 0x68], eax
mov ebx, dword [esi + 0x24]
cmp ebx, ecx
jle 0x430af1
mov eax, dword [esi + 0x2c]
mov dword [ebp - 0x30], eax
lea esi, [eax + 4]
mov eax, dword [esi]
cmp byte [eax + 0x29], 0
je 0x430ad3
inc ecx
add esi, 4
cmp ecx, ebx
jl 0x430ac1
jmp 0x430af1
mov eax, dword [ebp - 0x30]
mov eax, dword [eax + ecx*4]
movups xmm0, xmmword [eax + 0x10]
movups xmmword [edi + 0x50], xmm0
movq xmm0, qword [eax + 0x20]
movq qword [edi + 0x60], xmm0
mov eax, dword [eax + 0x28]
mov dword [edi + 0x68], eax
test edx, edx
je 0x430b0e
nop word [eax + eax]
or byte [edx + 0xa0], 0x20
mov edx, dword [edx + 0x18]
test edx, edx
jne 0x430b00
mov ebx, dword [0x59d350]
cmp dword [edi + 0x30], 0
je 0x430b31
mov eax, dword [edi + 0x10]
shr eax, 0xc
test al, 1
je 0x430b31
mov ecx, edi
call fcn.00432ab0
mov ebx, dword [0x59d350]
mov esi, dword [edi + 0x18]
xor dl, dl
test esi, esi
jne 0x430cfb
test dword [edi + 0x10], 0x400
jne 0x430cfb
mov ecx, dword [edi + 0x24]
cmp ecx, 1
jg 0x430b70
cmp dword [edi + 0x1c], esi
jne 0x430b70
mov eax, dword [ebp - 0x44]
cmp byte [eax + 0x5a], dl
jne 0x430b70
test ecx, ecx
je 0x430b6e
mov eax, dword [edi + 0x2c]
mov eax, dword [eax]
cmp byte [eax + 0x28], dl
jne 0x430b70
mov dl, 1
cmp dword [edi + 0x80], 0
je 0x430b81
test dl, dl
je 0x430cfb
cmp ecx, 1
jne 0x430c16
mov eax, dword [edi + 0x2c]
mov esi, dword [eax]
mov eax, dword [esi + 0x40]
mov ecx, dword [esi + 0x44]
mov dword [edi + 0x34], eax
mov dword [edi + 0x38], ecx
mov eax, dword [esi + 0x50]
mov ecx, dword [esi + 0x54]
mov dword [edi + 0x3c], eax
mov eax, dword [edi + 0x9c]
and eax, 0xfffffebf
mov dword [edi + 0x40], ecx
mov ecx, dword [edi + 0x70]
or eax, 0x80
and eax, 0xffffffd7
or eax, 0x10
and eax, 0xfffffffa
or eax, 2
mov dword [edi + 0x9c], eax
mov eax, ecx
test ecx, ecx
je 0x430bed
mov edx, dword [ebp - 0x44]
cmp dword [edx + 0x4120], ecx
jne 0x430bf1
mov ecx, esi
call fcn.00425060
mov eax, dword [edi + 0x70]
mov ebx, dword [0x59d350]
test eax, eax
je 0x430c16
mov ecx, dword [eax + 0x2c]
mov dword [esi + 0x2c], ecx
mov eax, dword [edi + 0x70]
mov eax, dword [eax + 0x30]
mov dword [esi + 0x30], eax
mov eax, dword [edi + 0x70]
cmp byte [eax + 0xc2], 0
je 0x430c16
mov dword [ecx + 0x6c], esi
mov byte [esi + 0xc2], 1
mov eax, dword [edi + 0x70]
test eax, eax
je 0x430c36
cmp dword [eax + 0x38c], edi
jne 0x430c2f
mov dword [eax + 0x38c], 0
mov dword [edi + 0x70], 0
cmp dword [edi + 0x24], 1
jne 0x430c4d
mov ecx, dword [edi + 0x2c]
mov eax, dword [ecx]
mov dword [edi + 0x74], eax
mov eax, dword [ecx]
and byte [eax + 0x36d], 0xfe
cmp dword [edi + 0x30], 0
je 0x430c60
mov ecx, edi
call fcn.00432ab0
mov ebx, dword [0x59d350]
mov al, byte [edi + 0xa0]
and al, 0xbf
mov dword [edi + 0x14], 1
and al, 0xe7
mov dword [edi + 0x98], 0
test byte [edi + 0xa1], 1
mov byte [edi + 0xa0], al
mov eax, dword [ebp - 0x44]
mov eax, dword [eax + 0x3ea0]
mov dword [edi + 0x88], eax
je 0x43161f
cmp dword [edi + 0x24], 1
jne 0x43161f
mov eax, dword [edi + 0x2c]
mov esi, dword [eax]
mov ecx, esi
call fcn.0041acb0
movss xmm1, dword [ebx + 0x3628]
movss xmm0, dword [ebx + 0x362c]
subss xmm1, dword [edi + 0x34]
subss xmm0, dword [edi + 0x38]
mov dword [ebx + 0x3f14], esi
movss dword [ebx + 0x3f70], xmm1
movss dword [ebx + 0x3f74], xmm0
and byte [edi + 0xa1], 0xfe
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.00466a4b
mov esp, ebp
pop ebp
ret
mov al, byte [edi + 0xa0]
test al, 1
je 0x430d8e
cmp dword [edi + 0x70], 0
jne 0x430d8e
test esi, esi
jne 0x430d8e
test dword [edi + 0x10], 0x400
jne 0x430d8e
cmp dword [edi + 0x1c], esi
jne 0x430d8e
cmp dword [edi + 0x94], esi
je 0x430d59
mov esi, dword [edi + 0x24]
xor ecx, ecx
test esi, esi
jle 0x430d59
mov edx, dword [edi + 0x2c]
mov eax, dword [edx]
mov esi, dword [edi + 0x94]
cmp dword [eax + 4], esi
mov esi, dword [edi + 0x24]
je 0x430d4f
inc ecx
add edx, 4
cmp ecx, esi
jl 0x430d35
jmp 0x430d59
mov eax, dword [edi + 0x2c]
mov eax, dword [eax + ecx*4]
test eax, eax
jne 0x430d5e
mov eax, dword [edi + 0x2c]
mov eax, dword [eax]
cmp byte [eax + 0xdc], 0
jg 0x430d70
cmp byte [eax + 0xdd], 0
jle 0x430d88
mov dword [edi + 0x14], 2
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.00466a4b
mov esp, ebp
pop ebp
ret
mov al, byte [edi + 0xa0]
mov ecx, dword [edi + 0x24]
mov edx, dword [edi + 0x10]
mov dword [ebp - 0x40], edx
test ecx, ecx
jle 0x430daf
test edx, 0x4000
jne 0x430daf
and al, 0xf7
or al, 0x10
mov byte [edi + 0xa0], al
jmp 0x430dbd
and al, 0xe7
mov byte [edi + 0xa0], al
mov eax, edx
test ecx, ecx
jle 0x430e09
xor esi, esi
nop
mov eax, dword [edi + 0x2c]
mov edx, dword [eax + esi*4]
mov al, byte [edi + 0xa0]
mov cl, byte [edx + 0xcd]
shl cl, 3
or cl, al
xor cl, al
and cl, 8
xor cl, al
cmp dword [edi + 0x24], 1
mov byte [edi + 0xa0], cl
mov al, byte [edx + 0x36d]
setg cl
and al, 0xfe
inc esi
or cl, al
mov byte [edx + 0x36d], cl
mov ecx, dword [edi + 0x24]
cmp esi, ecx
jl 0x430dc0
mov eax, dword [edi + 0x10]
mov edx, dword [ebp - 0x40]
test edx, 0x8000
je 0x430e18
and byte [edi + 0xa0], 0xf7
shr eax, 0xa
xor esi, esi
mov byte [ebp - 0x29], 0
test al, 1
je 0x430e2d
mov esi, dword [edi + 0x70]
jmp 0x431107
mov eax, dword [edi + 0x18]
test eax, eax
jne 0x43109d
test byte [edi + 0xa0], 1
je 0x4310ad
test ecx, ecx
jle 0x430e50
mov eax, dword [edi + 0x2c]
mov edx, dword [eax]
jmp 0x430e52
xor edx, edx
mov eax, dword [edi + 0x9c]
shl eax, 0x1d
sar eax, 0x1d
cmp eax, 2
jne 0x430e76
test edx, edx
je 0x430eb0
or dword [ebx + 0x3fec], 1
mov eax, dword [edx + 0x40]
mov ecx, dword [edx + 0x44]
jmp 0x430e87
cmp eax, 1
jne 0x430eb0
or dword [ebx + 0x3fec], eax
mov eax, dword [edi + 0x34]
mov ecx, dword [edi + 0x38]
mov byte [ebx + 0x4028], 1
mov dword [ebx + 0x3ff0], 1
mov dword [ebx + 0x400c], esi
mov dword [ebx + 0x4008], esi
mov dword [ebx + 0x4004], ecx
mov dword [ebx + 0x4000], eax
mov eax, dword [edi + 0x9c]
shl eax, 0x1a
sar eax, 0x1d
cmp eax, 2
jne 0x430ed3
test edx, edx
je 0x430efb
or dword [ebx + 0x3fec], eax
mov eax, dword [edx + 0x50]
mov ecx, dword [edx + 0x54]
jmp 0x430ee5
cmp eax, 1
jne 0x430efb
or dword [ebx + 0x3fec], 2
mov eax, dword [edi + 0x3c]
mov ecx, dword [edi + 0x40]
mov dword [ebx + 0x3ff4], 1
mov dword [ebx + 0x4014], ecx
mov dword [ebx + 0x4010], eax
mov ecx, dword [edi + 0x9c]
mov eax, ecx
and al, 0x38
cmp al, 0x10
jne 0x430f30
test edx, edx
je 0x430f30
mov al, byte [edx + 0xc6]
or dword [ebx + 0x3fec], 8
mov byte [ebx + 0x4029], al
mov dword [ebx + 0x3ff8], 1
mov ecx, dword [edi + 0x9c]
and ecx, 0x1c0
cmp ecx, 0x80
jne 0x430f55
test edx, edx
je 0x430f55
mov eax, dword [edx + 0x30]
or dword [ebx + 0x3fec], 0x100
mov dword [ebx + 0x4048], eax
or dword [ebx + 0x3fec], 0x400
xor ecx, ecx
movups xmm0, xmmword [edi + 0x50]
mov byte [ebp - 0x4c], 0
movups xmmword [ebx + 0x4050], xmm0
movq xmm0, qword [edi + 0x60]
movq qword [ebx + 0x4060], xmm0
movaps xmm0, xmmword [0x46e950]
mov eax, dword [edi + 0x68]
mov dword [ebx + 0x4068], eax
movups xmmword [ebp - 0x5c], xmm0
mov al, byte [ebp - 0x5c]
xor byte [ebp + ecx - 0x5b], al
inc ecx
cmp ecx, 0xf
jb 0x430f91
push dword [edi]
lea eax, [ebp - 0x5b]
mov byte [ebp - 0x4c], 0
push eax
lea eax, [ebp - 0x18]
push 0x14
push eax
call fcn.004171e0
mov esi, dword [0x59d350]
lea eax, [ebp - 0x38]
add esp, 0x10
mov dword [ebp - 0x38], 2
or dword [esi + 0x3fec], 0x40
lea ecx, [esi + 0x4080]
mov dword [esi + 0x4044], 0
movss xmm1, dword [esi + 0x385c]
movss xmm0, dword [esi + 0x3860]
push eax
movss dword [ebp - 0x34], xmm1
movss dword [ebp - 0x30], xmm0
call fcn.00437bf0
push 0x20081139
xor edx, edx
mov dword [esi + 0x385c], 0
lea ecx, [ebp - 0x18]
mov dword [esi + 0x3860], 0
call fcn.00421ef0
add esp, 4
mov ecx, 1
call fcn.004188e0
mov eax, dword [ebp - 0x44]
mov byte [ebp - 0x29], 1
mov esi, dword [eax + 0x3f04]
mov eax, dword [edi + 0x70]
test eax, eax
je 0x431057
cmp eax, esi
je 0x431057
cmp dword [eax + 0x38c], edi
jne 0x431057
mov dword [eax + 0x38c], 0
mov dword [esi + 0x38c], edi
mov dword [edi + 0x70], esi
mov eax, dword [esi + 0x40]
mov ecx, dword [esi + 0x44]
mov dword [esi + 0x108], eax
mov dword [esi + 0x10c], ecx
mov dword [edi + 0x38], ecx
mov dword [edi + 0x34], eax
mov ecx, dword [esi + 0x4c]
mov eax, dword [esi + 0x48]
mov dword [edi + 0x40], ecx
mov ecx, dword [edi + 0x70]
mov dword [edi + 0x3c], eax
cmp byte [ecx + 0xc9], 0
je 0x431095
call fcn.00424fe0
mov ebx, dword [0x59d350]
jmp 0x4310a3
mov esi, dword [eax + 0x70]
mov dword [edi + 0x70], esi
and dword [edi + 0x9c], 0xfffffe00
test byte [edi + 0xa1], 1
je 0x431107
mov eax, dword [edi + 0x70]
mov dword [ebp - 0x30], eax
test eax, eax
je 0x431107
mov ecx, eax
call fcn.0041acb0
movss xmm1, dword [ebx + 0x3628]
movss xmm0, dword [ebx + 0x362c]
subss xmm1, dword [edi + 0x34]
subss xmm0, dword [edi + 0x38]
mov eax, dword [ebp - 0x30]
mov dword [ebx + 0x3f14], eax
movss dword [ebx + 0x3f70], xmm1
movss dword [ebx + 0x3f74], xmm0
and byte [edi + 0xa1], 0xfe
mov ebx, dword [0x59d350]
mov ecx, dword [edi + 0x18]
test ecx, ecx
jne 0x431143
mov eax, dword [ebp - 0x44]
mov eax, dword [eax + 0x4120]
test eax, eax
je 0x431143
mov eax, dword [eax + 0x324]
mov edx, dword [eax + 0x388]
test edx, edx
je 0x431143
cmp dword [eax + 0x31c], esi
jne 0x431143
mov eax, dword [edx]
mov edx, dword [edi + 0x78]
mov dword [edi + 0x90], eax
mov dword [ebp - 0x48], edx
jmp 0x431151
mov edx, dword [edi + 0x78]
mov dword [ebp - 0x48], edx
test ecx, ecx
jne 0x431308
test esi, esi
je 0x431308
test byte [ebp - 0x40], 8
je 0x431308
test edx, edx
je 0x431308
cmp dword [edx + 0x1c], 0
jne 0x431308
cmp dword [edx + 0x24], 0
jne 0x431308
xor ecx, ecx
mov byte [ebp - 0x2a], 1
cmp byte [ebx + 0x4290], cl
lea eax, [ebx + 0x42a0]
cmove eax, ecx
mov dword [ebp - 0x30], eax
test eax, eax
je 0x4311f6
cmp dword [eax + 0x10], 0xffffffff
je 0x4311f6
lea ecx, [eax + 0x14]
mov eax, str.4845547ax
nop dword [eax]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x4311d0
test dl, dl
je 0x4311cc
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x4311d0
add eax, 2
add ecx, 2
test dl, dl
jne 0x4311b0
xor eax, eax
jmp 0x4311d5
sbb eax, eax
or eax, 1
test eax, eax
jne 0x4311f3
mov edx, dword [ebp - 0x30]
mov ecx, esi
mov edx, dword [edx]
mov edx, dword [edx]
call fcn.00432bd0
test al, al
je 0x4311f3
mov eax, dword [edi + 0x18]
jmp 0x431317
mov edx, dword [ebp - 0x48]
mov eax, dword [edx + 0x18]
mov ecx, edx
test eax, eax
je 0x431209
nop
mov ecx, eax
mov eax, dword [ecx + 0x18]
test eax, eax
jne 0x431200
movss xmm2, dword [edx + 0x34]
comiss xmm2, dword [ecx + 0x34]
movss xmm5, dword [ecx + 0x34]
movaps xmm4, xmm2
movss xmm6, dword [ecx + 0x38]
movss xmm7, dword [ecx + 0x40]
movss xmm1, dword [edx + 0x38]
addss xmm7, xmm6
movss xmm3, dword [edx + 0x40]
addss xmm5, dword [ecx + 0x3c]
addss xmm4, dword [edx + 0x3c]
movss xmm0, dword [0x46e4e4]
addss xmm3, xmm1
jbe 0x43124e
addss xmm2, xmm0
comiss xmm5, xmm4
jbe 0x431257
subss xmm4, xmm0
comiss xmm1, xmm6
jbe 0x431260
addss xmm1, xmm0
comiss xmm7, xmm3
jbe 0x431269
subss xmm3, xmm0
comiss xmm2, xmm4
ja 0x4311eb
comiss xmm1, xmm3
ja 0x4311eb
subss xmm4, xmm2
mov ecx, dword [esi + 0x31c]
subss xmm3, xmm1
movaps xmm0, xmm2
cvttss2si edx, xmm4
cvttss2si ebx, xmm3
mov word [ebp - 0x30], dx
mov word [ebp - 0x2e], bx
mov eax, dword [ebp - 0x30]
mov dword [esi + 0x24c], eax
subss xmm0, dword [esi + 0x40]
cvttss2si eax, xmm0
movaps xmm0, xmm1
mov word [ebp - 0x30], ax
subss xmm0, dword [esi + 0x44]
cvttss2si eax, xmm0
mov word [ebp - 0x2e], ax
mov eax, dword [ebp - 0x30]
mov dword [esi + 0x250], eax
test ecx, ecx
je 0x43130c
mov word [ebp - 0x30], dx
mov word [ebp - 0x2e], bx
mov eax, dword [ebp - 0x30]
mov dword [ecx + 0x24c], eax
subss xmm2, dword [ecx + 0x40]
subss xmm1, dword [ecx + 0x44]
cvttss2si eax, xmm2
mov word [ebp - 0x30], ax
cvttss2si eax, xmm1
mov word [ebp - 0x2e], ax
mov eax, dword [ebp - 0x30]
mov dword [ecx + 0x250], eax
mov eax, dword [edi + 0x18]
jmp 0x431317
mov byte [ebp - 0x2a], 0
mov eax, dword [edi + 0x18]
test esi, esi
je 0x4313f2
test eax, eax
jne 0x43134b
mov ecx, dword [esi + 0x288]
push 1
push ecx
add ecx, 0x78
call fcn.00442d50
push dword [esi + 0x4c]
xor edx, edx
mov ecx, edi
push dword [esi + 0x48]
push dword [esi + 0x44]
push dword [esi + 0x40]
call fcn.00434510
add esp, 0x10
mov ecx, edi
call fcn.004348b0
cmp dword [edi + 0x1c], 0
jne 0x4313f2
cmp dword [edi + 0x24], 0
jne 0x4313f2
test byte [edi + 0xa0], 1
je 0x4313f2
mov ecx, dword [esi + 0x288]
push 0
push ecx
add ecx, 0x78
call fcn.00442d50
mov ebx, dword [ebp - 0x40]
test bl, 8
je 0x431395
or byte [edi + 0xa0], 4
mov dword [edi + 0x6c], 0
jmp 0x4313f5
movss xmm1, dword [0x46e478]
mov ecx, 0x27
call fcn.004186c0
mov dword [edi + 0x6c], eax
test eax, eax
je 0x4313e9
movss xmm0, dword [edi + 0x3c]
lea ecx, [edi + 0x34]
addss xmm0, dword [ecx]
push 0
push ecx
mov dword [esp], 0
push eax
movss dword [ebp - 0x34], xmm0
lea eax, [ebp - 0x34]
movss xmm0, dword [edi + 0x40]
addss xmm0, dword [ecx + 4]
push eax
push ecx
mov ecx, dword [esi + 0x288]
movss dword [ebp - 0x30], xmm0
call fcn.00442260
or byte [edi + 0xa0], 4
jmp 0x4313f5
mov ebx, dword [ebp - 0x40]
test esi, esi
je 0x431541
cmp dword [edi + 0x18], 0
jne 0x43151f
test bl, 8
je 0x43151f
test byte [edi + 0xa0], 1
je 0x43151f
mov ecx, dword [esi + 0x288]
push 0
push ecx
add ecx, 0x78
call fcn.00442d50
cmp byte [ebp - 0x2a], 0
lea edx, [edi + 0x34]
je 0x4314d5
mov eax, dword [ebp - 0x48]
sub esp, 8
movss xmm3, dword [edx]
mov ecx, 2
movss dword [ebp - 0x3c], xmm3
movss xmm2, dword [eax + 0x34]
movss xmm0, dword [eax + 0x3c]
movss xmm1, dword [eax + 0x38]
addss xmm0, xmm2
movss dword [ebp - 0x28], xmm2
movss xmm2, dword [edi + 0x38]
movss dword [ebp - 0x24], xmm1
movss dword [ebp - 0x38], xmm2
movss dword [ebp - 0x20], xmm0
movss xmm0, dword [eax + 0x40]
addss xmm0, xmm1
mov dword [esp + 4], 0
movss xmm1, dword [0x46e478]
movss dword [ebp - 0x1c], xmm0
movss xmm0, dword [edi + 0x3c]
addss xmm0, xmm3
movss dword [ebp - 0x34], xmm0
movss xmm0, dword [edi + 0x40]
addss xmm0, xmm2
movss dword [ebp - 0x30], xmm0
call fcn.004186c0
mov ecx, dword [esi + 0x288]
lea edx, [ebp - 0x3c]
add esp, 4
push eax
lea eax, [ebp - 0x28]
push eax
call fcn.00446f90
add esp, 0xc
jmp 0x43151f
movss xmm0, dword [edx]
addss xmm0, dword [edi + 0x3c]
movss xmm1, dword [0x46e478]
push 0
push ecx
mov ecx, 2
mov dword [esp], 0
movss dword [ebp - 0x34], xmm0
movss xmm0, dword [edx + 4]
addss xmm0, dword [edi + 0x40]
movss dword [ebp - 0x30], xmm0
call fcn.004186c0
mov ecx, dword [esi + 0x288]
push eax
lea eax, [ebp - 0x34]
push eax
push edx
call fcn.00442260
mov ecx, dword [esi + 0x288]
push 1
push ecx
add ecx, 0x78
call fcn.00442d50
cmp dword [edi + 0x24], 0
jle 0x431541
mov edx, esi
mov ecx, edi
call fcn.004318d0
jmp 0x43155b
mov al, byte [edi + 0xa0]
and al, 0xbf
mov dword [edi + 0x98], 0
and al, 0xfd
mov byte [edi + 0xa0], al
mov eax, dword [edi + 0x30]
test eax, eax
je 0x431569
mov eax, dword [eax + 0x14]
test eax, eax
jne 0x431577
cmp dword [edi + 0x24], 0
jle 0x43157d
mov eax, dword [edi + 0x2c]
mov eax, dword [eax]
mov eax, dword [eax + 4]
mov dword [edi + 0x94], eax
test esi, esi
je 0x4315ba
test byte [edi + 0xa0], 1
je 0x4315ba
cmp dword [edi + 0x18], 0
jne 0x4315ba
mov ebx, dword [ebp - 0x44]
mov eax, dword [ebx + 0x3f14]
test eax, eax
je 0x4315a5
cmp dword [eax + 0x32c], esi
je 0x4315ba
mov ecx, esi
call fcn.004359b0
mov eax, dword [ebx + 0x3ea0]
mov dword [edi + 0x88], eax
jmp 0x4315cd
mov eax, dword [ebp - 0x44]
mov eax, dword [eax + 0x3ea0]
mov dword [edi + 0x88], eax
test esi, esi
je 0x431614
mov ecx, dword [edi + 0x1c]
test ecx, ecx
je 0x4315d9
call fcn.004309f0
mov ecx, dword [edi + 0x20]
test ecx, ecx
je 0x4315e5
call fcn.004309f0
cmp dword [edi + 0x18], 0
jne 0x431603
mov ecx, dword [esi + 0x288]
push 1
push ecx
add ecx, 0x78
call fcn.00442d50
mov ecx, esi
call fcn.00420b30
mov ecx, dword [esi + 0x288]
push 0
push ecx
add ecx, 0x78
call fcn.00442d50
cmp byte [ebp - 0x29], 0
je 0x43161f
call fcn.00424e40
mov ecx, dword [ebp - 4]
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.00466a4b
mov esp, ebp
pop ebp
ret