Function at 0x46d6da
Capabilities:
Check os version
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
push 0xffffffffffffffff
push 0x62bd0c
add byte [ecx], ah
add byte [eax], al
add byte [eax - 0x7f], dl
in al, dx
sbb byte [eax + eax], al
add byte [eax], al
mov eax, dword [0x652018]
xor eax, esp
mov dword [esp + 0x410], eax
push ebx
push esi
push edi
mov eax, dword [0x652018]
xor eax, esp
push eax
lea eax, [esp + 0x428]
mov dword fs:[0], eax
mov edi, ecx
mov eax, dword [ebp + 0x10]
mov ebx, dword [ebp + 0xc]
mov esi, dword [ebp + 8]
mov dword [esp + 0x20], eax
mov eax, dword [ebp + 0x14]
mov dword [esp + 0x30], eax
mov eax, dword [ebp + 0x18]
mov dword [esp + 0x68], eax
mov eax, dword [ebp + 0x1c]
mov dword [esp + 0x5c], eax
mov eax, dword [ebp + 0x20]
mov dword [esp + 0x34], eax
mov eax, dword [ebp + 0x24]
mov byte [esp + 0x54], al
mov eax, dword [ebp + 0x28]
mov dword [esp + 0x44], eax
mov eax, dword [ebp + 0x2c]
mov dword [esp + 0x2c], eax
mov eax, dword [ebp + 0x30]
mov dword [esp + 0x48], ebx
mov dword [esp + 0x40], eax
test ebx, ebx
je 0x46d76c
mov ecx, ebx
call fcn.00481b8e
test al, al
jne 0x46dc2f
mov eax, dword [esp + 0x2c]
mov byte [eax], 0
test ebx, ebx
jne 0x46d796
movzx eax, word [esi]
cmp ax, 0x6d
je 0x46d796
cmp ax, 0x33
je 0x46d796
cmp ax, 0x54
je 0x46d796
cmp ax, 0x72
jne 0x46dc34
cmp dword [esi + 0x14], 0x13
jne 0x46d7ea
cmp byte [edi + 0x88], 0
je 0x46d7ea
test ebx, ebx
je 0x46d899
mov edx, dword [edi + 0x10]
mov ecx, ebx
call fcn.0048115e
test al, al
jne 0x46d7cc
mov ecx, dword [edi + 0x210]
push 7
call fcn.0040300e
cmp ebx, eax
jne 0x46d7ea
push dword [edi + 0x1c]
mov ecx, dword [esi + 0x1c]
lea eax, [esi + 4]
push dword [edi + 0x10]
push eax
call 0x3dd26e
mov edx, eax
mov ecx, 0x7aa2
call fcn.00424e3e
test ebx, ebx
je 0x46d899
push 0
push esi
push ebx
mov ecx, edi
call fcn.004772ae
test al, al
je 0x46d899
mov ecx, dword [ebx + 0x54]
mov ecx, dword [ecx]
call 0x3dc91e
mov ecx, dword [esp + 0x2c]
mov edx, dword [esp + 0x34]
push 0
push dword [esp + 0x44]
push ecx
mov ecx, dword [esp + 0x50]
push ecx
push dword [esp + 0x64]
mov ecx, edi
push edx
mov edx, dword [esp + 0x74]
push edx
push 0
push dword [esp + 0x50]
push dword [esp + 0x44]
push eax
push esi
call fcn.0046d6ce
push 0x2c
lea ecx, [edi + 0x24]
mov dword [esp + 0x28], eax
call fcn.0053ac3e
mov edx, dword [esp + 0x24]
mov esi, eax
mov eax, 0x30
mov word [esi], ax
test edx, edx
je 0x46d86f
mov cx, word [edx + 2]
and cx, 1
or word [esi + 2], cx
mov dword [esi + 0x24], edx
mov eax, dword [edx + 4]
mov ecx, ebx
mov dword [esi + 4], eax
mov eax, dword [edx + 8]
mov dword [esi + 8], eax
mov eax, dword [edx + 0xc]
mov dword [esi + 0xc], eax
mov eax, dword [edx + 0x10]
mov dword [esi + 0x10], eax
mov dword [esi + 0x1c], ebx
call 0x3db1de
mov dword [esi + 0x14], eax
jmp 0x46dc34
mov eax, dword [esi + 0x1c]
cmp byte [eax], 0x21
jne 0x46d90d
cmp word [esi], 0x72
jne 0x46d90d
lea eax, [esp + 0x12]
mov byte [esp + 0x13], 0
push eax
lea eax, [esp + 0x17]
mov byte [esp + 0x16], 0
push eax
push ebx
push esi
mov ecx, edi
call fcn.0046ce6e
test eax, eax
je 0x46d8e3
mov edx, dword [esp + 0x5c]
movzx ecx, byte [esp + 0x13]
mov byte [edx], cl
mov edx, dword [esp + 0x34]
movzx ecx, byte [esp + 0x12]
mov byte [edx], cl
jmp 0x46dc36
test byte [esi + 2], 1
jne 0x46d90d
mov ecx, dword [esi + 0x1c]
call fcn.00427c7e
test al, al
je 0x46d90d
mov eax, dword [esi + 0x1c]
mov ecx, edi
add eax, 0x28
push eax
push 0x8f6d
call fcn.00421dae
jmp 0x46dc2f
movzx eax, word [esi]
cmp ax, 0x33
je 0x46d930
cmp ax, 0x6d
je 0x46d930
cmp ax, 0x6c
jne 0x46dcff
test byte [esi + 0x38], 0x40
jne 0x46dcff
test ebx, ebx
je 0x46d963
mov ecx, ebx
call 0x3db36e
test al, al
jne 0x46d963
mov ecx, dword [edi + 0x210]
push 7
call fcn.0040300e
cmp ebx, eax
je 0x46d963
mov ecx, dword [edi + 0x210]
call fcn.00427dae
cmp ebx, eax
jne 0x46db3d
movzx eax, word [esi]
cmp ax, 0x33
jne 0x46d9b8
test ebx, ebx
je 0x46db3d
mov edx, dword [edi + 0x210]
mov ecx, ebx
call fcn.004810de
test al, al
jne 0x46db3d
mov edx, dword [esp + 0x5c]
lea eax, [esi + 4]
mov ecx, dword [esp + 0x44]
push edx
push 0
push ecx
push dword [esp + 0x3c]
mov ecx, edi
push dword [esp + 0x30]
push dword [esp + 0x68]
push eax
push ebx
push esi
push dword [esi + 0x24]
call fcn.0045f7de
mov edx, eax
jmp 0x46dcf0
cmp ax, 0x6d
jne 0x46db11
lea eax, [edi + 0x148]
push eax
lea ecx, [esp + 0x98]
call fcn.004775ee
mov dword [esp + 0x430], 0
test ebx, ebx
jne 0x46d9ed
mov word [edi + 0x148], 0x101
mov ecx, dword [esp + 0x30]
xor eax, eax
and ecx, 0x40
mov byte [esp + 0x12], 0
or eax, ecx
je 0x46da03
mov al, 1
jmp 0x46da05
xor al, al
mov edx, dword [esp + 0x34]
lea ecx, [esp + 0x12]
push ecx
push dword [esp + 0x44]
mov ecx, dword [esp + 0x4c]
push 0
push eax
push edx
mov edx, dword [esp + 0x70]
push edx
push 0
push ecx
push 1
push ebx
push esi
mov ecx, edi
call fcn.00541d2e
mov edx, eax
mov dword [esp + 0x14], edx
cmp word [edx], 0x6c
jne 0x46da54
mov ecx, dword [esp + 0x20]
mov eax, dword [esp + 0x30]
and ecx, 0x8000
and eax, 0x400
or ecx, eax
je 0x46da54
or byte [edx + 0x38], 0x40
cmp byte [esp + 0x12], 0
je 0x46daca
mov ecx, dword [esp + 0x20]
mov eax, dword [esp + 0x30]
and ecx, 0x8000
and eax, 0x400
or ecx, eax
jne 0x46daca
lea eax, [esp + 0x74]
mov ecx, esi
push eax
call fcn.00541ace
cmp byte [edi + 0x88], 0
mov ecx, dword [eax]
mov dword [esp + 0x84], ecx
mov ecx, dword [eax + 4]
mov dword [esp + 0x88], ecx
mov ecx, dword [eax + 8]
mov dword [esp + 0x8c], ecx
mov eax, dword [eax + 0xc]
mov dword [esp + 0x90], eax
je 0x46dac6
lea eax, [esp + 0x84]
push eax
push 0xa577
push dword [edi + 0x1c]
call 0x3cd1ce
add esp, 0xc
mov edx, dword [esp + 0x14]
mov dword [esp + 0x430], 0xffffffff
cmp byte [esp + 0xa0], 0
mov dword [esp + 0x94], 0x4264fc
jne 0x46dcf0
mov ecx, dword [esp + 0x9c]
test ecx, ecx
je 0x46db04
mov ax, word [esp + 0x98]
mov word [ecx], ax
mov byte [esp + 0xa0], 1
jmp 0x46dcf0
mov ecx, ebx
call 0x3db36e
test al, al
jne 0x46db28
cmp byte [esi + 0x44], al
jne 0x46db28
mov edx, esi
jmp 0x46dcf0
mov edx, dword [edi + 0x210]
mov ecx, ebx
call fcn.004810de
test al, al
je 0x46dc5c
cmp word [esi], 0x6d
jne 0x46db51
test byte [esi + 0x38], 2
je 0x46db51
mov ecx, dword [esi + 0x28]
add ecx, 4
jmp 0x46db54
lea ecx, [esi + 4]
mov eax, dword [ecx]
mov dword [esp + 0x94], eax
mov eax, dword [ecx + 4]
mov dword [esp + 0x98], eax
mov eax, dword [ecx + 8]
mov dword [esp + 0x9c], eax
mov eax, dword [ecx + 0xc]
mov dword [esp + 0xa0], eax
test ebx, ebx
jne 0x46dba8
cmp byte [edi + 0x88], bl
je 0x46dc2f
lea eax, [esp + 0x94]
push eax
push 0x771b
push dword [edi + 0x1c]
call 0x3cd1ce
add esp, 0xc
jmp 0x46dc2f
mov ecx, dword [edi + 0x210]
mov eax, dword [ecx]
push dword [eax + 0x10]
lea eax, [ecx + 0x18]
push eax
lea ecx, [esp + 0x8c]
call fcn.00402cde
mov eax, dword [esp + 0x84]
dec eax
neg eax
sbb eax, eax
not eax
and eax, dword [esp + 0x88]
cmp ebx, eax
je 0x46dc0a
mov ecx, dword [edi + 0x210]
call fcn.00427d7e
cmp ebx, eax
je 0x46dc0a
lea eax, [esp + 0x94]
push ebx
push eax
xor eax, eax
cmp word [esi], 0x33
setne al
dec eax
and eax, 0xffffe864
add eax, 0x8f11
jmp 0x46dc27
lea eax, [esp + 0x94]
push ebx
push eax
xor eax, eax
cmp word [esi], 0x33
setne al
dec eax
and eax, 0xffffe9c9
add eax, 0x8f12
push eax
mov ecx, edi
call fcn.0042201e
or word [esi + 2], 1
mov eax, esi
mov ecx, dword [esp + 0x428]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x410]
xor ecx, esp
call 0x59f18f
mov esp, ebp
pop ebp
ret 0x30
mov ecx, dword [esi + 0x1c]
test ecx, ecx
je 0x46dc73
call 0x3db1de
cmp eax, 1
je 0x46dc73
cmp byte [esi + 0x44], 0
je 0x46dc79
test byte [esi + 0x38], 2
je 0x46dcab
push ebx
push esi
mov ecx, edi
call fcn.0054536e
mov esi, eax
cmp word [esi], 0x6c
jne 0x46dc34
push 0x400
push 0x8000
push dword [esp + 0x38]
push dword [esp + 0x2c]
call fcn.0040125e
test al, al
je 0x46dc34
or byte [esi + 0x38], 0x40
jmp 0x46dc34
mov edx, dword [esp + 0x34]
push edx
mov edx, dword [esp + 0x60]
push edx
push ecx
push 1
push ebx
push esi
mov ecx, edi
call fcn.005446ce
mov edx, eax
mov dword [esp + 0x14], edx
cmp word [edx], 0x6c
jne 0x46dcf0
push 0x400
push 0x8000
push dword [esp + 0x38]
push dword [esp + 0x2c]
call fcn.0040125e
mov edx, dword [esp + 0x14]
test al, al
je 0x46dcf0
or byte [edx + 0x38], 0x40
test byte [edx + 2], 1
je 0x46dcfd
mov eax, edx
jmp 0x46dc36
mov esi, edx
push ebx
push esi
mov ecx, edi
call fcn.0046ad3e
mov esi, eax
mov dword [esp + 0x28], esi
test byte [esi + 2], 1
jne 0x46dc34
test ebx, ebx
je 0x46dc34
mov edx, dword [esp + 0x20]
mov eax, edx
mov ecx, dword [esi + 0x1c]
and eax, 0x10000000
or eax, 0
mov dword [esp + 0x18], ecx
mov dword [esp + 0x4c], 0
mov dword [esp + 0x60], 0
mov dword [esp + 0x64], 0
mov byte [esp + 0x3b], 0
push 0
je 0x46dd80
lea eax, [esp + 0x3f]
mov edx, ecx
push eax
push 0
push 0
push 0
push 0
push 0xe00
push dword [edi + 0x10]
lea eax, [edi + 0x6c]
mov ecx, ebx
push eax
call fcn.0048acbe
mov edx, eax
mov dword [esp + 0x14], edx
jmp 0x46ddfd
push 0x20000000
push dword [esp + 0x38]
push edx
call fcn.0040125e
mov ecx, edi
test al, al
je 0x46ddad
push 0
push 0
push 0
push dword [esp + 0x24]
push ebx
call fcn.0048d30e
mov edx, eax
mov dword [esp + 0x14], edx
jmp 0x46ddfd
push dword [ebp + 0x34]
lea eax, [esp + 0x44]
mov dword [esp + 0x44], 0
push eax
lea eax, [esp + 0x43]
push eax
push dword [esp + 0x38]
lea eax, [esp + 0x6a]
push 1
push eax
lea eax, [esp + 0x78]
push eax
lea eax, [esp + 0x68]
push eax
push dword [esp + 0x38]
push ebx
call fcn.0048ab7e
mov ecx, dword [esp + 0x40]
mov edx, eax
mov eax, dword [esp + 0x44]
mov dword [esp + 0x14], edx
mov eax, dword [eax]
cmp eax, ecx
jg 0x46ddf7
mov eax, ecx
mov ecx, dword [esp + 0x44]
mov dword [ecx], eax
cmp edx, 2
jne 0x46e03f
mov ecx, dword [esp + 0x18]
call 0x4004de
test al, al
je 0x46de3d
mov ecx, ebx
call fcn.0042858e
test al, al
je 0x46de3d
mov ecx, ebx
call 0x3c4cce
mov eax, dword [eax + 0x90]
shr eax, 0xa
test al, 1
je 0x46de3d
mov ecx, ebx
call 0x3e597e
test al, al
je 0x46de88
mov ecx, ebx
call 0x4004de
test al, al
je 0x46df8e
mov ecx, dword [esp + 0x18]
call fcn.0042858e
test al, al
je 0x46df8e
mov ecx, dword [esp + 0x18]
call 0x3c4cce
mov eax, dword [eax + 0x90]
shr eax, 0xa
test al, 1
je 0x46df8e
mov ecx, dword [esp + 0x18]
call 0x3e597e
test al, al
jne 0x46df8e
mov ecx, ebx
call fcn.0042858e
test al, al
je 0x46de99
mov dword [esp + 0x40], ebx
jmp 0x46dea1
mov eax, dword [esp + 0x18]
mov dword [esp + 0x40], eax
mov ecx, ebx
call 0x4004de
test al, al
je 0x46deb4
mov eax, ebx
mov dword [esp + 0x3c], ebx
jmp 0x46debc
mov eax, dword [esp + 0x18]
mov dword [esp + 0x3c], eax
push 0
push 0
push 0
push dword [edi + 0x10]
lea ecx, [edi + 0x6c]
mov edx, eax
push 0
push 0
push ecx
mov ecx, dword [esp + 0x5c]
call fcn.0048217e
test al, al
jne 0x46df8e
mov ecx, dword [edi + 0x210]
mov eax, dword [ecx]
push dword [eax + 0x10]
lea eax, [ecx + 0x284]
push eax
lea ecx, [esp + 0x8c]
call fcn.00402cde
cmp dword [esp + 0x84], 1
jne 0x46df70
mov ecx, dword [esp + 0x88]
call 0x3da59e
cmp eax, 6
jne 0x46df70
lea ecx, [edi + 0xa4]
push 0xfe
lea eax, [ecx + 0x20]
push eax
call fcn.0042dc9e
test eax, eax
je 0x46df70
lea ecx, [edi + 0xa4]
push 0xfe
lea eax, [ecx + 0x20]
push eax
call fcn.0042dc9e
push dword [edi + 0x10]
lea ecx, [edi + 0x6c]
mov edx, eax
push ecx
mov ecx, dword [esp + 0x44]
call fcn.00482c5e
test al, al
je 0x46df70
mov dword [esp + 0x64], 0x79d9
mov dword [esp + 0x14], 3
jmp 0x46e048
cmp byte [edi + 0x88], 0
je 0x46df8e
push ebx
push dword [esp + 0x1c]
lea eax, [esi + 4]
mov ecx, edi
push eax
push 0xa552
call fcn.0042215e
mov edx, dword [esp + 0x14]
mov eax, dword [esp + 0x20]
and eax, 4
or eax, 0
je 0x46e4eb
cmp edx, 3
je 0x46dfb0
cmp edx, 2
jne 0x46e4eb
mov ecx, dword [esp + 0x18]
call fcn.0048108e
test al, al
je 0x46e4eb
mov eax, dword [edi + 0x210]
lea ecx, [edi + 0x6c]
push dword [edi + 0x10]
push dword [eax + 0x928]
call fcn.0041637e
push 0
push 0x10000000
push dword [esp + 0x38]
mov dword [esp + 0x50], eax
push dword [esp + 0x2c]
mov dword [esp + 0x80], 0
mov dword [esp + 0x7c], 0
mov byte [esp + 0x6b], 0
mov byte [esp + 0x4a], 0
call fcn.0040125e
push 0
test al, al
je 0x46e104
mov edx, dword [esp + 0x1c]
lea eax, [edi + 0x6c]
mov ecx, dword [esp + 0x48]
push 0
push 0
push 0
push 0
push 0
push 0xe00
push dword [edi + 0x10]
push eax
call fcn.0048acbe
jmp 0x46e15a
cmp edx, 3
jne 0x46df92
mov ecx, dword [esp + 0x18]
call 0x4004de
test al, al
je 0x46df8e
mov ecx, ebx
call 0x3e915e
test al, al
je 0x46df8e
mov ecx, dword [edi + 0x210]
mov eax, dword [ecx]
push dword [eax + 0x10]
lea eax, [ecx + 0x284]
push eax
lea ecx, [esp + 0x8c]
call fcn.00402cde
cmp dword [esp + 0x84], 1
jne 0x46df8e
mov ecx, dword [esp + 0x88]
call 0x3da59e
cmp eax, 6
jne 0x46df8e
lea ecx, [edi + 0xa4]
push 0xfe
lea eax, [ecx + 0x20]
push eax
call fcn.0042dc9e
test eax, eax
je 0x46df8e
lea ecx, [edi + 0xa4]
push 0xfe
lea eax, [ecx + 0x20]
push eax
call fcn.0042dc9e
push dword [edi + 0x10]
lea ecx, [edi + 0x6c]
mov edx, eax
push ecx
mov ecx, dword [esp + 0x20]
call fcn.00482c5e
mov edx, dword [esp + 0x14]
test al, al
je 0x46df92
mov dword [esp + 0x64], 0x79da
jmp 0x46df92
push 0x20000000
push dword [esp + 0x38]
push dword [esp + 0x2c]
call fcn.0040125e
mov ecx, edi
push 0
push 0
push 0
test al, al
je 0x46e131
push dword [esp + 0x24]
push dword [esp + 0x54]
call fcn.0048d30e
jmp 0x46e15a
lea eax, [esp + 0x46]
push eax
push 0
lea eax, [esp + 0x6f]
push eax
lea eax, [esp + 0x84]
push eax
lea eax, [esp + 0x8c]
push eax
push dword [esp + 0x38]
push dword [esp + 0x68]
call fcn.0048ab7e
mov dword [esp + 0x3c], eax
mov eax, dword [edi + 0x210]
cmp dword [eax + 0x928], 0
je 0x46e1d4
cmp ebx, dword [eax + 0x928]
jne 0x46e1d4
mov edx, dword [edi + 0x10]
mov ecx, dword [esp + 0x18]
call 0x3d1a0e
test al, al
je 0x46e1d4
mov eax, dword [edi + 0x210]
mov edx, dword [edi + 0x10]
mov ecx, dword [esp + 0x18]
mov esi, dword [eax + 0x928]
call fcn.00427c5e
push 1
mov edx, eax
mov ecx, esi
call 0x3dcd0e
test al, al
je 0x46e1d0
mov eax, dword [esp + 0x2c]
lea ecx, [edi + 0x24]
push 0x2c
mov byte [eax], 0
call fcn.0053ac3e
mov edx, dword [esp + 0x28]
mov esi, eax
mov eax, 0x70
mov word [esi], ax
jmp 0x46d860
mov esi, dword [esp + 0x28]
cmp dword [esp + 0x3c], 1
mov byte [esp + 0x13], 0
mov byte [esp + 0x12], 0
jne 0x46e28f
mov ecx, dword [esp + 0x2c]
mov al, byte [esp + 0x3a]
push 0
push 0
mov byte [ecx], al
lea eax, [esp + 0x1a]
push eax
lea eax, [esp + 0x30]
mov byte [esp + 0x2b], 0
push eax
push 0
lea eax, [esp + 0x27]
mov dword [esp + 0x38], 0
push eax
lea eax, [esp + 0x37]
mov ecx, edi
push eax
mov eax, dword [esp + 0x3c]
push 0
push dword [esp + 0x50]
and eax, 0xfffffffb
push eax
push dword [esp + 0x6c]
push esi
call fcn.0046d6ce
push 0x2c
lea ecx, [edi + 0x24]
mov dword [esp + 0x54], eax
call fcn.0053ac3e
mov edi, eax
mov eax, 0x70
mov word [edi], ax
mov eax, dword [esp + 0x50]
test eax, eax
je 0x46e263
mov cx, word [eax + 2]
and cx, 1
mov dword [edi + 0x24], eax
or word [edi + 2], cx
mov eax, dword [esi + 4]
mov ecx, ebx
mov dword [edi + 4], eax
mov eax, dword [esi + 8]
mov dword [edi + 8], eax
mov eax, dword [esi + 0xc]
mov dword [edi + 0xc], eax
mov eax, dword [esi + 0x10]
mov dword [edi + 0x10], eax
mov dword [edi + 0x1c], ebx
call 0x3db1de
mov dword [edi + 0x14], eax
mov eax, edi
jmp 0x46dc36
mov bl, byte [edi + 0x88]
lea ecx, [esp + 0x50]
push ecx
lea ecx, [esp + 0x44]
mov dword [esp + 0x44], 0
push ecx
lea ecx, [esp + 0x1b]
mov dword [esp + 0x58], 0
push ecx
lea ecx, [esp + 0x1e]
mov byte [edi + 0x88], 0
push ecx
push 0
lea eax, [esi + 4]
mov ecx, edi
push esi
push eax
push 0x40
mov dword [esp + 0xa4], eax
call fcn.0051036e
cmp dword [esp + 0x40], 0
mov ecx, eax
mov dword [esp + 0x24], ecx
mov byte [edi + 0x88], bl
je 0x46e40a
cmp byte [esp + 0x12], 0
jne 0x46e40a
cmp byte [esp + 0x13], 0
jne 0x46e40a
mov eax, dword [edi + 0x210]
push 0
push 0
push 0
mov edx, dword [eax + 0x928]
call fcn.0048281e
test al, al
jne 0x46e362
mov ebx, dword [esp + 0x24]
mov ecx, ebx
mov edx, dword [edi + 0x10]
call 0x3d1a0e
test al, al
je 0x46e40a
mov eax, dword [edi + 0x210]
mov ecx, ebx
mov edx, dword [edi + 0x10]
mov esi, dword [eax + 0x928]
call fcn.00427c5e
push 1
mov edx, esi
mov ecx, eax
call 0x3dcd0e
mov esi, dword [esp + 0x28]
test al, al
je 0x46e40a
push dword [esp + 0x30]
mov ebx, dword [esp + 0x24]
lea eax, [esi + 4]
push ebx
push 0
push esi
push eax
push dword [esp + 0x64]
mov ecx, edi
push dword [esp + 0x58]
push 0x77
call fcn.0045ee5e
mov edx, dword [edi + 0x10]
mov esi, eax
mov ecx, dword [esp + 0x24]
call 0x3d1a0e
test al, al
je 0x46dc34
mov al, byte [esp + 0x3a]
push 0
mov ecx, dword [esp + 0x4c]
push 0
mov byte [esp + 0x1a], al
lea eax, [esp + 0x1a]
push eax
lea eax, [esp + 0x30]
mov byte [esp + 0x1f], 0
push eax
push dword [esp + 0x64]
lea eax, [esp + 0x33]
mov byte [esp + 0x33], 0
push eax
lea eax, [esp + 0x2b]
mov dword [esp + 0x3c], 0
push eax
push 0
push dword [esp + 0x50]
push ebx
push ecx
push esi
mov ecx, edi
call fcn.0046d6ce
mov ecx, dword [esp + 0x2c]
mov esi, eax
cmp byte [ecx], 0
jne 0x46e3fe
cmp byte [esp + 0x12], 0
jne 0x46e3fe
xor eax, eax
mov byte [ecx], al
jmp 0x46dc34
mov eax, 1
mov byte [ecx], al
jmp 0x46dc34
cmp dword [esp + 0x3c], 2
jne 0x46e4e7
mov ecx, dword [edi + 0x210]
push 7
call fcn.0040300e
mov ecx, dword [esp + 0x18]
mov edx, eax
push 1
call 0x3dcd0e
test al, al
jne 0x46e4e7
mov ecx, dword [esp + 0x2c]
mov al, byte [esp + 0x3a]
push 0
push 0
mov byte [ecx], al
lea eax, [esp + 0x27]
push eax
lea eax, [esp + 0x30]
mov byte [esp + 0x1f], 0
push eax
push 0
lea eax, [esp + 0x26]
mov byte [esp + 0x26], 0
push eax
lea eax, [esp + 0x2b]
mov dword [esp + 0x3c], 0
push eax
mov eax, dword [esp + 0x3c]
mov ecx, edi
push 0
push dword [esp + 0x50]
and eax, 0xfffffffb
mov byte [esp + 0x43], 0
push eax
push dword [esp + 0x6c]
push esi
call fcn.0046d6ce
push 0x2c
lea ecx, [edi + 0x24]
mov ebx, eax
call fcn.0053ac3e
mov esi, eax
mov eax, 0x70
mov word [esi], ax
test ebx, ebx
je 0x46e4b5
mov cx, word [ebx + 2]
and cx, 1
mov dword [esi + 0x24], ebx
or word [esi + 2], cx
mov ecx, dword [esp + 0x84]
mov eax, dword [ecx]
mov dword [esi + 4], eax
mov eax, dword [ecx + 4]
mov dword [esi + 8], eax
mov eax, dword [ecx + 8]
mov dword [esi + 0xc], eax
mov eax, dword [ecx + 0xc]
mov ecx, dword [esp + 0x48]
mov dword [esi + 0x10], eax
mov dword [esi + 0x1c], ecx
call 0x3db1de
mov dword [esi + 0x14], eax
jmp 0x46dc34
mov ebx, dword [esp + 0x48]
mov ecx, dword [esp + 0x14]
cmp ecx, 3
jne 0x46e941
mov esi, dword [esp + 0x20]
push 0
push 0x40000
push dword [esp + 0x38]
push esi
call fcn.0040125e
test al, al
jne 0x46e532
push 3
push ebx
lea eax, [esp + 0x30]
mov ecx, edi
push eax
call fcn.0046f02e
test al, al
je 0x46e532
mov eax, dword [esp + 0x28]
or word [eax + 2], 1
jmp 0x46dc36
cmp byte [edi + 0x88], 0
je 0x46e938
push 0
push 0x10000000
push dword [esp + 0x38]
mov dword [esp + 0x40], 0
push esi
mov dword [esp + 0x30], 0
call fcn.0040125e
push 0
test al, al
je 0x46e591
mov esi, dword [esp + 0x1c]
lea eax, [esp + 0x38]
push 0
push eax
lea eax, [esp + 0x2c]
mov edx, esi
push eax
push 1
push 0
push 0xe00
push dword [edi + 0x10]
lea eax, [edi + 0x6c]
mov ecx, ebx
push eax
call fcn.0048acbe
jmp 0x46e5d8
push 0x20000000
push dword [esp + 0x38]
push esi
call fcn.0040125e
mov esi, dword [esp + 0x18]
test al, al
mov ecx, edi
lea eax, [esp + 0x34]
je 0x46e5bf
push eax
lea eax, [esp + 0x24]
push eax
push 1
push esi
push ebx
call fcn.0048d30e
jmp 0x46e5d8
push 0
push 0
push 0
push 1
push 0
push eax
lea eax, [esp + 0x38]
push eax
push 1
push esi
push ebx
call fcn.0048c57e
cmp eax, 3
je 0x46e7e9
mov ecx, dword [esp + 0x34]
test ecx, ecx
je 0x46e7e9
mov edx, dword [edi + 0x17c]
cmp ecx, edx
je 0x46e7e9
mov eax, dword [esp + 0x20]
mov dword [esp + 0x2c], eax
test eax, eax
je 0x46e7e9
cmp eax, edx
je 0x46e7e9
cmp ecx, eax
je 0x46e7e9
mov bl, byte [ecx + 0x1a]
cmp bl, byte [eax + 0x1a]
mov byte [esp + 0x12], bl
mov ebx, dword [esp + 0x48]
jne 0x46e716
test edx, edx
je 0x46e659
push 0
push ecx
mov ecx, edx
call fcn.0040a04e
test al, al
mov eax, dword [esp + 0x20]
mov dword [esp + 0x2c], eax
je 0x46e655
mov ecx, dword [edi + 0x17c]
mov dword [esp + 0x54], ecx
jmp 0x46e666
mov ecx, dword [esp + 0x34]
call 0x427eae
mov dword [esp + 0x54], eax
mov eax, dword [esp + 0x2c]
mov ecx, dword [edi + 0x17c]
test ecx, ecx
je 0x46e68c
push 0
push eax
call fcn.0040a04e
test al, al
mov eax, dword [esp + 0x20]
je 0x46e688
mov ecx, dword [edi + 0x17c]
jmp 0x46e699
mov dword [esp + 0x2c], eax
mov ecx, eax
call 0x427eae
mov ecx, eax
mov eax, dword [esp + 0x2c]
cmp dword [esp + 0x54], 0
je 0x46e7e9
test ecx, ecx
je 0x46e7e9
cmp byte [ecx + 0x1a], 0
je 0x46e6c1
call fcn.00407dfe
mov dword [esp + 0x24], eax
mov eax, dword [esp + 0x20]
jmp 0x46e6c8
mov ecx, dword [ecx + 0x3c]
mov dword [esp + 0x24], ecx
mov eax, dword [eax + 0x3c]
mov dword [esp + 0x84], eax
mov eax, dword [esp + 0x54]
cmp byte [eax + 0x1a], 0
je 0x46e6e5
mov ecx, eax
call fcn.00407dfe
jmp 0x46e6e8
mov eax, dword [eax + 0x3c]
push dword [esp + 0x24]
mov ecx, edi
push dword [esp + 0x88]
push eax
mov eax, dword [esp + 0x40]
push dword [eax + 0x3c]
push ebx
push esi
mov esi, dword [esp + 0x40]
lea eax, [esi + 4]
push eax
push 0x78f1
call fcn.00423b1e
jmp 0x46dc2f
cmp byte [esp + 0x12], 0
je 0x46e725
mov edx, ecx
mov dword [esp + 0x3c], edx
jmp 0x46e72b
mov edx, eax
mov dword [esp + 0x3c], eax
cmp byte [esp + 0x12], 0
jne 0x46e736
mov dword [esp + 0x2c], ecx
mov ecx, dword [edi + 0x17c]
test ecx, ecx
je 0x46e758
push 0
push edx
call fcn.0040a04e
test al, al
je 0x46e758
mov ecx, dword [edi + 0x17c]
mov dword [esp + 0x24], ecx
jmp 0x46e767
mov ecx, dword [esp + 0x3c]
call 0x427eae
mov ecx, eax
mov dword [esp + 0x24], eax
test ecx, ecx
je 0x46e7e9
mov eax, dword [esp + 0x2c]
cmp byte [eax + 0x1a], 0
je 0x46e782
mov ecx, eax
call fcn.00407dfe
mov ecx, dword [esp + 0x24]
jmp 0x46e785
mov eax, dword [eax + 0x3c]
cmp byte [ecx + 0x1a], 0
mov dword [esp + 0x50], eax
je 0x46e796
call fcn.00407dfe
jmp 0x46e799
mov eax, dword [ecx + 0x3c]
mov dword [esp + 0x24], eax
mov eax, dword [esp + 0x3c]
cmp byte [eax + 0x1a], 0
je 0x46e7b6
mov ecx, eax
call fcn.00407dfe
mov ecx, eax
mov eax, dword [esp + 0x3c]
jmp 0x46e7b9
mov ecx, dword [eax + 0x3c]
push dword [esp + 0x50]
push dword [esp + 0x28]
push ecx
push ecx
mov ecx, eax
call fcn.0041e54e
add esp, 4
mov ecx, edi
push eax
push ebx
push esi
mov esi, dword [esp + 0x40]
lea eax, [esi + 4]
push eax
push 0x78eb
call fcn.00423b1e
jmp 0x46dc2f
cmp dword [esp + 0x64], 0
je 0x46e81a
mov ecx, ebx
call 0x4004de
test al, al
mov eax, ebx
jne 0x46e7ff
mov eax, esi
push eax
push ebx
push esi
mov esi, dword [esp + 0x34]
mov ecx, edi
lea eax, [esi + 4]
push eax
push dword [esp + 0x74]
call fcn.004236fe
jmp 0x46dc2f
mov ecx, esi
call 0x3db1de
cmp eax, 0x14
jne 0x46e84b
mov ecx, ebx
call 0x3db1de
cmp eax, 0x14
jne 0x46e84b
mov esi, dword [esp + 0x28]
mov ecx, edi
lea eax, [esi + 4]
push eax
push ebx
push dword [esp + 0x20]
call fcn.004701ce
jmp 0x46dc2f
mov ecx, esi
call 0x3db1de
cmp eax, 0xf
jne 0x46e876
mov ecx, ebx
call 0x3db1de
cmp eax, 0xe
jne 0x46e876
mov esi, dword [esp + 0x28]
push ebx
lea eax, [esi + 4]
push eax
push 0x7744
jmp 0x46dc28
mov ecx, ebx
call 0x3db1de
cmp eax, 0xf
jne 0x46e8a1
mov ecx, esi
call 0x3db1de
cmp eax, 0xe
jne 0x46e8a1
push esi
mov esi, dword [esp + 0x2c]
lea eax, [esi + 4]
push eax
push 0x7745
jmp 0x46dc28
mov ecx, ebx
call 0x3db1de
cmp eax, 0x10
jne 0x46e8d0
mov ecx, esi
call 0x3db1de
cmp byte [eax + 0x40681c], 0
je 0x46e8d0
push esi
mov esi, dword [esp + 0x2c]
lea eax, [esi + 4]
push eax
push 0x7d07
jmp 0x46dc28
mov ecx, ebx
call 0x3db1de
cmp byte [eax + 0x40681c], 0
je 0x46e8ff
mov ecx, esi
call 0x3db1de
cmp eax, 0x10
jne 0x46e8ff
mov esi, dword [esp + 0x28]
push ebx
lea eax, [esi + 4]
push eax
push 0x7d06
jmp 0x46dc28
mov eax, dword [esp + 0x68]
mov ecx, edi
push ebx
push esi
mov esi, dword [esp + 0x30]
test eax, eax
je 0x46e925
push dword [eax + 8]
lea eax, [esi + 4]
push eax
push 0x810d
call fcn.004230ee
jmp 0x46dc2f
lea eax, [esi + 4]
push eax
push 0x7667
call fcn.0042215e
jmp 0x46dc2f
mov esi, dword [esp + 0x28]
jmp 0x46dc2f
cmp ecx, 2
jne 0x46eb4d
mov ecx, esi
call fcn.00481a7e
test al, al
je 0x46e95b
test byte [esi + 0x1a], 1
je 0x46e971
mov ecx, esi
call fcn.0048105e
test al, al
je 0x46e97b
mov ecx, ebx
call 0x3db3de
test al, al
je 0x46e97b
mov ecx, 1
jmp 0x46eb4d
push 0
push 0x40000
push dword [esp + 0x38]
push dword [esp + 0x2c]
call fcn.0040125e
test al, al
jne 0x46eb49
mov ecx, dword [esp + 0x4c]
mov eax, ebx
mov byte [esp + 0x13], 1
mov dword [esp + 0x48], eax
test ecx, ecx
je 0x46ea1c
mov ecx, dword [ecx + 0x50]
call 0x3dc91e
push dword [esp + 0x60]
mov ecx, edi
push eax
call fcn.0048139e
mov ecx, dword [esp + 0x4c]
mov ecx, dword [ecx + 0x5c]
cmp dword [ecx + 0x80], 2
jne 0x46e9f1
push 0
push 0
push 0
push 1
push 0
push 0
push 0
push 0
push eax
push ebx
mov ecx, edi
call fcn.0048c57e
mov byte [esp + 0x13], 1
cmp eax, 2
jne 0x46e9f6
mov byte [esp + 0x13], 0
mov eax, dword [esp + 0x4c]
mov ecx, dword [eax + 0x54]
mov ecx, dword [ecx + 0xc]
call 0x3dc91e
push dword [esp + 0x60]
mov ecx, edi
push eax
call fcn.0048139e
cmp byte [esp + 0x13], 0
mov dword [esp + 0x48], eax
je 0x46ea6d
cmp word [esi], 0x28
jne 0x46ea6d
mov ecx, eax
call 0x3db1de
mov al, byte [eax + 0x40681c]
test al, al
je 0x46ea6d
mov ecx, dword [esp + 0x48]
call 0x3db3de
test al, al
jne 0x46ea6d
mov ecx, dword [esp + 0x18]
call 0x3db3de
test al, al
jne 0x46ea6d
mov ecx, dword [esp + 0x18]
call 0x3db1de
cmp eax, 3
je 0x46ea6d
mov ecx, dword [esp + 0x18]
call 0x3db1de
cmp eax, 0x10
jne 0x46eb08
cmp word [esi], 0x2a
jne 0x46ea8c
mov ecx, dword [esp + 0x48]
call fcn.004811ae
test al, al
je 0x46ea8c
mov eax, dword [esp + 0x34]
mov byte [eax], 1
jmp 0x46eb42
mov edx, dword [edi + 0x10]
mov ecx, dword [esp + 0x48]
call fcn.00427c5e
mov edx, dword [edi + 0x10]
mov ecx, dword [esp + 0x48]
mov dword [esp + 0x24], eax
call 0x3d1a0e
test al, al
je 0x46eb11
cmp byte [esp + 0x13], 0
je 0x46eb11
cmp word [esi], 0x28
jne 0x46eaf5
mov ecx, dword [esp + 0x24]
call 0x3db1de
mov al, byte [eax + 0x40681c]
test al, al
je 0x46eaf5
mov ecx, dword [esp + 0x18]
call 0x3db3de
test al, al
jne 0x46eaf5
mov ecx, dword [esp + 0x18]
call 0x3db1de
cmp eax, 3
je 0x46eaf5
mov ecx, dword [esp + 0x18]
call 0x3db1de
cmp eax, 0x10
jne 0x46eb08
cmp word [esi], 0x2a
jne 0x46eb11
mov ecx, dword [esp + 0x24]
call fcn.004811ae
test al, al
je 0x46eb11
mov eax, dword [esp + 0x34]
mov byte [eax], 1
jmp 0x46eb42
mov eax, dword [esp + 0x68]
mov ecx, edi
test eax, eax
je 0x46ec02
cmp byte [edi + 0x105], 0
je 0x46ebd9
push ebx
push dword [esp + 0x1c]
push dword [eax + 8]
lea eax, [esi + 4]
push eax
push 0x7d1d
call fcn.004230ee
mov eax, dword [esp + 0x5c]
mov byte [eax], 1
mov ecx, dword [esp + 0x14]
mov eax, dword [esp + 0x4c]
test eax, eax
je 0x46ef57
cmp byte [esp + 0x5a], 0
je 0x46ef0d
push 0x40
lea ecx, [edi + 0x24]
call fcn.0053ac3e
mov ecx, eax
mov eax, 0x5f
mov dword [esp + 0x14], ecx
mov word [ecx], ax
test esi, esi
je 0x46eb8f
mov ax, word [esi + 2]
and ax, 1
mov dword [ecx + 0x24], esi
or word [ecx + 2], ax
mov eax, dword [esi + 4]
mov dword [ecx + 4], eax
mov eax, dword [esi + 8]
mov dword [ecx + 8], eax
mov eax, dword [esi + 0xc]
mov dword [ecx + 0xc], eax
mov eax, dword [esi + 0x10]
mov dword [ecx + 0x10], eax
mov dword [ecx + 0x1c], ebx
mov ecx, ebx
call 0x3db1de
mov ecx, dword [esp + 0x14]
mov dword [ecx + 0x14], eax
mov eax, dword [esp + 0x4c]
mov dword [ecx + 0x2c], eax
mov eax, dword [esp + 0x60]
mov dword [ecx + 0x30], eax
mov eax, dword [esp + 0x20]
mov dword [ecx + 0x38], eax
mov eax, dword [esp + 0x30]
mov dword [ecx + 0x3c], eax
jmp 0x46ef29
call fcn.0048153e
test al, al
je 0x46eb42
mov eax, dword [esp + 0x68]
mov ecx, edi
push ebx
push dword [esp + 0x1c]
push dword [eax + 8]
lea eax, [esi + 4]
push eax
push 0xa40f
jmp 0x46eb3d
push 2
push ebx
lea eax, [esp + 0x30]
push eax
call fcn.0046f02e
test al, al
je 0x46ec26
mov esi, dword [esp + 0x28]
test byte [esi + 2], 1
je 0x46eb42
jmp 0x46dc34
mov al, byte [edi + 0x105]
mov byte [esp + 0x1f], al
test al, al
je 0x46ec3b
mov ecx, 0x7730
jmp 0x46ec4f
mov ecx, edi
call fcn.0048153e
movzx ecx, al
neg ecx
sbb ecx, ecx
and ecx, 0xa56e
mov esi, dword [esp + 0x18]
xor eax, eax
cmp ecx, 0xa56e
mov dword [esp + 0x2c], ecx
setne al
dec eax
and eax, 0xa420
cmp byte [esp + 0x1f], 0
mov dword [esp + 0x34], eax
je 0x46ed36
movzx eax, byte [esi]
test byte [eax + eax*2 + 0x405210], 4
je 0x46ed32
movzx eax, byte [ebx]
test byte [eax + eax*2 + 0x405210], 4
je 0x46ed32
mov eax, dword [edi + 0xc]
mov ecx, dword [esp + 0x18]
mov eax, dword [eax + 0xc]
mov esi, dword [eax + 0xa4]
call 0x3c4d6e
mov ecx, dword [edi + 0x10]
push eax
push esi
call 0x3c65ce
test al, al
jne 0x46ecdd
mov eax, dword [edi + 0xc]
mov ecx, ebx
mov eax, dword [eax + 0xc]
mov esi, dword [eax + 0xa4]
call 0x3c4d6e
mov ecx, dword [edi + 0x10]
push eax
push esi
call 0x3c65ce
test al, al
je 0x46ed2a
mov esi, dword [esp + 0x18]
mov ecx, esi
call 0x3c4d6e
mov edx, dword [eax + 4]
mov eax, dword [edi + 0xc]
mov eax, dword [eax + 0xc]
mov ecx, dword [eax + 0xa8]
call 0x3cc62e
test al, al
jne 0x46ed1f
mov ecx, ebx
call 0x3c4d6e
mov edx, dword [eax + 4]
mov eax, dword [edi + 0xc]
mov eax, dword [eax + 0xc]
mov ecx, dword [eax + 0xa8]
call 0x3cc62e
test al, al
je 0x46ed2e
mov ecx, 0x7821
mov dword [esp + 0x2c], ecx
jmp 0x46ed32
mov esi, dword [esp + 0x18]
mov ecx, dword [esp + 0x2c]
mov eax, dword [esp + 0x34]
cmp byte [esp + 0x3b], 0
je 0x46ed7a
cmp byte [edi + 0x105], 0
je 0x46ed4d
mov ecx, 0x8f81
jmp 0x46ed61
mov ecx, edi
call fcn.0048153e
movzx ecx, al
neg ecx
sbb ecx, ecx
and ecx, 0xa55c
xor eax, eax
mov dword [esp + 0x2c], ecx
cmp ecx, 0xa55c
setne al
dec eax
and eax, 0xa420
mov dword [esp + 0x34], eax
test ecx, ecx
je 0x46eef7
test eax, eax
jne 0x46ed9e
push ebx
push esi
mov esi, dword [esp + 0x30]
lea eax, [esi + 4]
push eax
push ecx
push ecx
mov ecx, edi
call fcn.00423e2e
jmp 0x46eefb
cmp byte [edi + 0x88], 0
je 0x46eef7
push ecx
lea ecx, [esp + 0xa8]
call fcn.0041538e
mov dword [esp + 0x430], 1
push ecx
lea ecx, [esp + 0x2f8]
call fcn.0041538e
mov byte [esp + 0x430], 2
push ecx
lea ecx, [esp + 0x1d0]
call fcn.0041538e
mov byte [esp + 0x430], 3
cmp dword [edi + 0x1c], 0
jne 0x46edfd
mov dword [esp + 0x24], 0x404b4c
jmp 0x46ee2f
mov ecx, dword [edi + 0x14c]
test ecx, ecx
jne 0x46ee0b
xor eax, eax
jmp 0x46ee10
call 0x3e0aae
push dword [edi + 0x10]
lea ecx, [esp + 0x1d0]
push 0
push 0
push 0
push ecx
mov ecx, dword [edi + 0x1c]
push eax
push ebx
call 0x3cd75e
mov dword [esp + 0x24], eax
cmp dword [edi + 0x1c], 0
jne 0x46ee3c
mov eax, 0x404b4c
jmp 0x46ee6a
mov ecx, dword [edi + 0x14c]
test ecx, ecx
jne 0x46ee4a
xor eax, eax
jmp 0x46ee4f
call 0x3e0aae
push dword [edi + 0x10]
lea ecx, [esp + 0x2f8]
push 0
push 0
push 0
push ecx
mov ecx, dword [edi + 0x1c]
push eax
push esi
call 0x3cd75e
push dword [esp + 0x24]
push eax
lea eax, [esp + 0xac]
push eax
push dword [esp + 0x38]
call fcn.0042878e
mov esi, dword [esp + 0x38]
add esp, 0x10
cmp byte [edi + 0x88], 0
lea ecx, [esi + 4]
je 0x46eeb6
mov eax, dword [esp + 0xc0]
test eax, eax
jne 0x46eea3
mov eax, 0x404b4c
push eax
push ecx
push 0
push dword [esp + 0x40]
push dword [edi + 0x1c]
call 0x3cd49e
add esp, 0x14
mov byte [esp + 0x430], 2
lea ecx, [esp + 0x1cc]
call 0x3cc30e
mov byte [esp + 0x430], 1
lea ecx, [esp + 0x2f4]
call 0x3cc30e
mov dword [esp + 0x430], 0xffffffff
lea ecx, [esp + 0xa4]
call 0x3cc30e
jmp 0x46eefb
mov esi, dword [esp + 0x28]
cmp byte [edi + 0x105], 0
je 0x46eb42
jmp 0x46dc2f
push dword [esp + 0x30]
mov ecx, edi
push dword [esp + 0x24]
push dword [esp + 0x68]
push eax
push ebx
push esi
call fcn.0046b88e
mov ecx, eax
mov dword [esp + 0x14], eax
test byte [ecx + 2], 1
jne 0x46ef6f
mov ecx, dword [esp + 0x4c]
add esi, 4
push esi
push dword [ecx + 0x5c]
mov ecx, edi
call fcn.00421cae
push esi
push dword [esp + 0x50]
mov ecx, edi
call fcn.0045ee0e
mov esi, dword [esp + 0x28]
mov ecx, dword [esp + 0x14]
jmp 0x46ef6f
push ecx
push dword [esp + 0x34]
mov ecx, edi
push dword [esp + 0x28]
push ebx
push esi
call fcn.0046beee
mov ecx, eax
mov dword [esp + 0x14], ecx
cmp dword [edi + 0x120], 0
je 0x46efb6
test byte [ecx + 2], 1
jne 0x46efad
push ecx
mov ecx, edi
call fcn.004700ee
test al, al
jne 0x46efad
push ebx
push dword [esp + 0x1c]
lea eax, [esi + 4]
mov ecx, edi
push eax
push 0x78d6
call fcn.0042215e
mov eax, dword [esp + 0x14]
or word [eax + 2], 1
jmp 0x46dc36
cmp dword [edi + 0x120], 0
jne 0x46f01c
push 0
push 1
push dword [esp + 0x38]
push dword [esp + 0x2c]
call fcn.0040125e
test al, al
mov eax, dword [esp + 0x14]
je 0x46dc36
test byte [eax + 2], 1
jne 0x46dc36
mov ecx, eax
call fcn.0042856e
test al, al
je 0x46eff9
mov eax, dword [esp + 0x14]
mov ecx, dword [eax + 0x1c]
call 0x3db1de
cmp eax, 0x14
jne 0x46f01c
push ebx
push dword [esp + 0x1c]
lea eax, [esi + 4]
mov ecx, edi
push eax
push 0x756c
call fcn.0042215e
mov eax, dword [esp + 0x14]
or word [eax + 2], 1
jmp 0x46dc36
mov eax, dword [esp + 0x14]
jmp 0x46dc36