Function at 0x40ef56
Capabilities:
Clear file content

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
push 0xffffffffffffffff
push 0x4b1ee6
mov eax, dword fs:[0]
push eax
push ecx
mov eax, 0x31a4
call fcn.004ae060
mov eax, dword [0x4d77ac]
xor eax, esp
mov dword [esp + 0x31a0], eax
push ebx
push esi
push edi
mov eax, dword [0x4d77ac]
xor eax, esp
push eax
lea eax, [esp + 0x31b8]
mov dword fs:[0], eax
mov esi, ecx
mov dword [esp + 0x1c], esi
cmp dword [ebp + 0xc], 0
mov eax, dword [esi + 8]
mov ebx, dword [ebp + 8]
movzx edi, word [eax + 0x93c2]
mov dword [esp + 0x28], edi
jne 0x40e91f
cmp byte [esi + 0x186f], 0
je 0x40e91b
push edi
push 0
lea edx, [esi + 0x10]
mov ecx, ebx
call fcn.004239a0
add esp, 8
test al, al
jne 0x40e91f
push 1
mov ecx, 0x4d8a18
call fcn.0040d200
xor al, al
jmp 0x40e967
mov eax, dword [ebx + 0x5724]
cmp eax, 2
je 0x40e9ed
cmp eax, 0x77
jne 0x40e98d
cmp byte [esi + 0x4bf7], 0
je 0x40e950
mov ecx, dword [esi + 8]
lea eax, [esi + 0x4bf8]
push eax
mov edx, ebx
call fcn.0040e4c0
add esp, 4
mov eax, dword [ebx]
push 0
push dword [ebx + 0xaea4]
push dword [ebx + 0xaea0]
mov ecx, ebx
call dword [eax + 0xc]
mov al, 1
mov ecx, dword [esp + 0x31b8]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x31a0]
xor ecx, esp
call fcn.00493864
mov esp, ebp
pop ebp
ret 0xc
cmp eax, 3
jne 0x40e9ae
cmp byte [esi + 0x4bf7], 0
je 0x40e950
mov ecx, dword [esi + 8]
lea eax, [esi + 0x4bf8]
push eax
mov edx, ebx
call fcn.0040e500
jmp 0x40e94d
cmp eax, 5
jne 0x40e950
cmp byte [ebx + 0x875c], 0
je 0x40e91b
push edi
push 0
lea edx, [esi + 0x10]
mov ecx, ebx
call fcn.004239a0
add esp, 8
test al, al
je 0x40e90f
mov eax, dword [ebx]
push 0
push dword [ebx + 0xae9c]
push dword [ebx + 0xae98]
jmp 0x40e960
mov ecx, dword [esi + 8]
mov byte [esi + 0x4bf7], 0
cmp dword [ecx + 0x615c], 0
jne 0x40ea1b
mov eax, dword [ecx + 0xb3f8]
cmp dword [esi + 0x3aec], eax
jb 0x40ea1b
cmp byte [esi + 0x3af1], 0
jne 0x40e91b
push ecx
lea edx, [esp + 0x19]
mov byte [esp + 0x19], 0
lea eax, [ebx + 0x6440]
push edx
push eax
call fcn.0040a510
mov ecx, dword [esi + 8]
mov edx, eax
test edx, edx
setne al
cmp dword [ecx + 0x6158], 2
mov dword [esp + 0x24], eax
jne 0x40ea9c
xor edi, edi
mov word [ecx + 0x4024], di
mov edi, dword [esp + 0x28]
test al, al
je 0x40eaae
mov eax, dword [esi + 8]
mov dword [eax + 0xb3f4], 0
lea eax, [edx - 1]
mov ecx, dword [esi + 8]
push eax
push ecx
lea eax, [ecx + 0x4024]
add ecx, 0xb3e4
push eax
call fcn.00417dd0
test al, al
je 0x40ea98
mov ecx, dword [esi + 8]
add ecx, 0x4024
call fcn.004125e0
xor ecx, ecx
mov word [eax], cx
mov eax, dword [esp + 0x24]
test al, al
je 0x40eaae
cmp byte [esp + 0x15], 0
jne 0x40eaae
mov byte [esi + 0x3af1], 0
cmp dword [ebx + 0x752c], 0
je 0x40ead1
cmp byte [ebx + 0x7521], 0
mov eax, 0x20
mov ecx, 0x10
cmovne eax, ecx
mov dword [ebx + 0x645c], eax
lea ecx, [ebx + 0x6460]
lea edx, [esp + 0x21ac]
call fcn.00412640
cmp byte [ebx + 0x7523], 0
je 0x40eb73
mov eax, dword [esi + 8]
mov eax, dword [eax + 0x7384]
cmp eax, 1
je 0x40eb97
cmp byte [esp + 0x15], 0
jne 0x40eb97
mov ecx, dword [esp + 0x24]
xor edx, edx
test eax, eax
movzx ecx, cl
lea eax, [esp + 0x21ac]
cmove ecx, edx
push 0x3b
push eax
mov dword [esp + 0x2c], ecx
call fcn.0049535b
add esp, 8
test eax, eax
je 0x40eb3f
lea ecx, [eax + 2]
call fcn.00418c70
jmp 0x40eb41
xor eax, eax
mov ecx, dword [esi + 8]
mov ecx, dword [ecx + 0x7384]
dec ecx
cmp ecx, eax
jne 0x40eb6c
lea eax, [esp + 0x21ac]
push 0x3b
push eax
call fcn.0049535b
add esp, 8
test eax, eax
je 0x40eb97
xor ecx, ecx
mov word [eax], cx
jmp 0x40eb97
mov byte [esp + 0x24], 0
jmp 0x40eb97
mov al, byte [ebx + 0x7521]
test al, al
jne 0x40eb97
mov eax, dword [esi + 8]
xor edx, edx
mov ecx, dword [esp + 0x24]
movzx ecx, cl
cmp dword [eax + 0x7384], 1
cmova ecx, edx
mov byte [esp + 0x24], cl
mov al, byte [ebx + 0x74c9]
mov byte [esi + 0x186f], al
mov byte [esi + 0x1870], 0
mov ecx, dword [ebx + 0xaea0]
sub ecx, dword [ebx + 0x7488]
mov eax, dword [ebx + 0xaea4]
sbb eax, dword [ebx + 0x748c]
mov edx, dword [ebx]
push 0
push eax
push ecx
mov ecx, ebx
call dword [edx + 0xc]
mov eax, dword [esp + 0x24]
xor cl, cl
mov byte [esp + 0x13], cl
cmp byte [esi + 0x3af0], cl
je 0x40ec1b
test al, al
jne 0x40ebeb
cmp byte [ebx + 0xaeac], al
je 0x40ec1b
cmp byte [ebx + 0x74c8], 0
je 0x40ec1b
test al, al
je 0x40ec15
mov eax, dword [esi + 8]
mov dword [eax + 0x93a0], 0xc
inc dword [0x4d8a1c]
mov dword [0x4d8a18], 6
xor al, al
mov dword [esp + 0x24], eax
mov byte [esi + 0x3af0], 0
test al, al
jne 0x40ec38
mov al, byte [ebx + 0xaeac]
mov byte [esp + 0x13], al
test al, al
je 0x40f60b
push ecx
lea eax, [esi + 0x4bf8]
mov ecx, esi
push eax
lea eax, [esp + 0x21b4]
push eax
push ebx
call fcn.0040f9a0
cmp byte [esp + 0x13], 0
jne 0x40ec6f
cmp word [esi + 0x4bf8], 0
je 0x40ec6f
cmp byte [ebx + 0x74c8], 0
mov byte [esp + 0x18], 1
je 0x40ec74
mov byte [esp + 0x18], 0
mov eax, dword [esi + 8]
cmp byte [eax + 0x6153], 0
jne 0x40ec8d
cmp byte [eax + 0x6154], 0
je 0x40ed1d
cmp di, 0x45
je 0x40ec9d
cmp di, 0x58
jne 0x40ed1d
lea ecx, [esp + 0x115c]
call fcn.0040a230
push ecx
lea edx, [esp + 0x1160]
lea ecx, [esi + 0x4bf8]
call fcn.004116b0
add esp, 4
test al, al
je 0x40ed04
lea eax, [ebx + 0x7470]
push eax
lea ecx, [esp + 0x2170]
call fcn.0040a000
test al, al
je 0x40ed1d
cmp byte [esp + 0x2168], 0
je 0x40ecfd
mov eax, dword [esp + 0x2170]
cmp eax, dword [esi + 4]
ja 0x40ed1d
jb 0x40ecfd
mov eax, dword [esp + 0x216c]
cmp eax, dword [esi]
jae 0x40ed1d
mov byte [esp + 0x18], 0
jmp 0x40ed1d
mov eax, dword [esi + 8]
xor edx, edx
mov ecx, dword [esp + 0x18]
movzx ecx, cl
cmp byte [eax + 0x6153], dl
cmovne ecx, edx
mov dword [esp + 0x18], ecx
cmp byte [ebx + 0x74cb], 0
je 0x40ed5d
mov ecx, esi
call fcn.0040fc30
test al, al
je 0x40e91b
mov al, byte [esi + 0x4bf4]
test al, al
jne 0x40ed5d
push 1
mov ecx, 0x4d8a18
call fcn.0040d200
mov eax, dword [esi + 8]
mov byte [esp + 0x18], 0
mov dword [eax + 0x93a0], 0x16
mov eax, dword [esi + 8]
add eax, 0x839c
cmp word [eax], 0
je 0x40ed89
push 0x7ff
push eax
lea eax, [esi + 0x4bf8]
push eax
call fcn.00493f28
add esp, 0xc
xor ecx, ecx
mov word [esi + 0x5bf6], cx
push ecx
push ebx
call fcn.004101d0
test al, al
jne 0x40edb1
push 2
mov ecx, 0x4d8a18
mov byte [esp + 0x1c], al
call fcn.0040d200
mov eax, dword [esi + 8]
mov dword [eax + 0x93a0], 0xe
lea ecx, [esp + 0x134]
call fcn.004105f0
mov dword [esp + 0x31c0], 0
mov eax, dword [ebx + 0x7530]
test eax, eax
setne cl
mov byte [esp + 0x22], cl
test cl, cl
je 0x40ee55
cmp eax, 5
je 0x40ee55
mov ecx, dword [esp + 0x18]
test cl, cl
je 0x40eede
cmp di, 0x50
je 0x40eeda
mov eax, dword [esi + 8]
cmp byte [eax + 0x62c1], 0
jne 0x40eeda
lea eax, [esi + 0x4bf8]
mov byte [esp + 0x15], 0
mov ecx, eax
call fcn.00411400
test al, al
je 0x40eed6
push 0
sub esp, 0xc
lea eax, [esp + 0x25]
xor edx, edx
push eax
push ecx
mov ecx, dword [esi + 8]
lea eax, [esi + 0x4bf8]
push eax
call fcn.00410240
add esp, 0x1c
cmp byte [esp + 0x15], 0
je 0x40eed6
xor cl, cl
mov dword [esp + 0x18], ecx
jmp 0x40eede
mov al, byte [ebx + 0x7521]
test al, al
je 0x40eeb6
cmp byte [esp + 0x18], 0
je 0x40ee9a
cmp di, 0x50
je 0x40ee9a
cmp di, 0x49
je 0x40ee9a
cmp di, 0x45
je 0x40ee9a
mov eax, dword [esi + 8]
cmp dword [eax + 0x6158], 1
je 0x40ee9a
inc dword [esi + 0x3ae4]
lea eax, [esp + 0x21ac]
push eax
push ebx
mov ecx, esi
call fcn.0040fe70
lea ecx, [esp + 0x134]
mov dword [esp + 0x31c0], 0xffffffff
call fcn.00410690
jmp 0x40e965
mov ecx, dword [esp + 0x18]
test cl, cl
je 0x40eede
lea eax, [esp + 0x134]
push eax
push ecx
mov ecx, esi
call fcn.00410070
mov cl, al
mov dword [esp + 0x18], ecx
jmp 0x40eeda
mov ecx, dword [esp + 0x18]
test cl, cl
jne 0x40eefb
cmp byte [ebx + 0xaeac], 0
je 0x40eef3
mov cl, 1
mov byte [esp + 0x13], cl
mov byte [esp + 0x18], cl
jmp 0x40eeff
test cl, cl
je 0x40f5de
mov cl, byte [esp + 0x13]
mov eax, dword [esi + 8]
cmp byte [eax + 0x62c1], 0
jne 0x40ef31
test cl, cl
jne 0x40ef31
mov byte [esp + 0x15], cl
cmp di, 0x50
je 0x40ef40
lea ecx, [esp + 0x134]
call fcn.00410fc0
test al, al
je 0x40ef3c
sub esp, 8
call fcn.0040d160
mov byte [esp + 0x15], 1
test cl, cl
jne 0x40ef46
jmp 0x40ef40
mov cl, byte [esp + 0x13]
inc dword [esi + 0x3ae4]
inc dword [esi + 0x3ae8]
cmp di, 0x49
je case.0x40ef82.70
test cl, cl
je 0x40ef5f
lea eax, [esp + 0x21ac]
jmp 0x40ef8f
mov eax, dword [esi + 8]
cmp byte [eax + 0x62c1], 0
mov eax, 0x54
jne 0x40ef73
movzx eax, di
sub eax, 0x45
cmp eax, 0x13
ja case.0x40ef82.70
movzx eax, byte [eax + 0x40f650]
jmp dword [eax*4 + 0x40f644]
lea eax, [esi + 0x4bf8]
push eax
push 0x4c02b8
call fcn.00403830
add esp, 8
add esi, 0x4af4
lea edi, [esp + 0x2c]
mov ecx, 0x40
rep movsd dword es:[edi], dword [esi]
movsw word es:[edi], word [esi]
mov esi, dword [esp + 0x1c]
lea eax, [esp + 0x2c]
push eax
push ebx
mov ecx, esi
mov byte [esp + 0x31c8], 1
call fcn.0040fd90
cmp byte [ebx + 0x74d0], 0
je 0x40efda
lea ecx, [ebx + 0x74d1]
jmp 0x40efdc
xor ecx, ecx
lea edi, [esi + 0x10]
lea esi, [esp + 0x21a4]
push esi
lea edx, [ebx + 0x74fb]
push edx
push dword [ebx + 0x751c]
lea eax, [ebx + 0x74e1]
push eax
push ecx
lea eax, [esp + 0x40]
push eax
push dword [ebx + 0x74cc]
lea ecx, [edi + 0xc4c]
push 0
call fcn.0040c0d0
mov esi, dword [esp + 0x1c]
mov byte [edi + 0x3acd], al
cmp byte [ebx + 0x74cb], 0
mov byte [esp + 0x14], 0
je 0x40f06f
cmp byte [ebx + 0x74f1], 0
je 0x40f06f
mov eax, dword [ebx + 0x74f2]
lea ecx, [esp + 0x21a4]
cmp eax, dword [ecx]
jne 0x40f051
mov eax, dword [ebx + 0x74f6]
cmp eax, dword [ecx + 4]
je 0x40f06f
cmp byte [ebx + 0xaebc], 0
jne 0x40f06f
inc dword [0x4d8a1c]
mov dword [0x4d8a18], 0xb
mov byte [esp + 0x14], 1
mov eax, dword [esi + 8]
lea edx, [ebx + 0x74a0]
mov dword [esi + 0x1890], 0
lea ecx, [esi + 0x2f78]
mov dword [esi + 0x1894], 0
mov dword [esi + 0x1898], 0
mov dword [esi + 0x189c], 0
push dword [eax + 0x8398]
push dword [edx]
call fcn.00411cb0
mov eax, dword [esi + 8]
lea ecx, [esi + 0x18b0]
push dword [eax + 0x8398]
push dword [ebx + 0x74a0]
call fcn.00411cb0
mov eax, dword [ebx + 0x7488]
mov ecx, dword [ebx + 0x748c]
mov dword [esi + 0x30], eax
lea eax, [esp + 0x134]
push eax
mov dword [esi + 0x34], ecx
mov ecx, edi
push ebx
call fcn.00415100
mov al, byte [esp + 0x15]
mov cl, byte [esp + 0x13]
mov dl, byte [esp + 0x14]
mov byte [esi + 0x39], al
mov byte [esi + 0x3a], cl
test al, al
jne 0x40f181
test dl, dl
jne 0x40f181
cmp byte [ebx + 0xaebc], dl
jne 0x40f181
mov ecx, dword [ebx + 0x7488]
mov eax, dword [ebx + 0x748c]
mov edi, dword [ebx + 0x7494]
mov edx, dword [ebx + 0x7490]
shld eax, ecx, 0xb
shl ecx, 0xb
cmp eax, edi
jl 0x40f179
jg 0x40f13a
cmp ecx, edx
jbe 0x40f179
test edi, edi
jl 0x40f161
jg 0x40f148
cmp edx, 0x5f5e100
jb 0x40f161
mov ecx, ebx
call fcn.00410f30
cmp edx, dword [ebx + 0x748c]
jl 0x40f179
jg 0x40f161
cmp eax, dword [ebx + 0x7488]
jbe 0x40f179
push dword [ebx + 0x7494]
lea ecx, [esp + 0x138]
push dword [ebx + 0x7490]
call fcn.00410de0
mov cl, byte [esp + 0x13]
mov dl, byte [esp + 0x14]
mov eax, dword [esi + 8]
mov edi, dword [esp + 0x28]
cmp byte [eax + 0x6194], 0
sete byte [esp + 0x147]
cmp byte [esp + 0x15], 0
jne 0x40f1ac
test cl, cl
jne 0x40f1ac
cmp di, 0x50
je 0x40f1ac
mov cl, 1
jmp 0x40f1ae
xor cl, cl
cmp byte [esp + 0x22], 0
mov byte [esp + 0x17], cl
mov byte [esp + 0x23], 1
mov byte [esp + 0x16], 1
je 0x40f2d4
mov eax, dword [ebx + 0x7530]
mov dword [esp + 0x1c], eax
cmp eax, 4
je 0x40f222
cmp eax, 5
je 0x40f222
cmp eax, 1
je 0x40f1f5
cmp eax, 2
je 0x40f1f5
cmp eax, 3
je 0x40f1f5
xor al, al
mov byte [esp + 0x16], al
jmp 0x40f2a7
test cl, cl
je 0x40f296
cmp dword [ebx + 0xaea8], 3
jne 0x40f1ea
mov ecx, dword [esi + 8]
lea eax, [ebx + 0x6440]
push eax
lea eax, [esi + 0x4bf8]
mov edx, eax
call fcn.0040e030
add esp, 4
jmp 0x40f288
push ecx
lea eax, [esp + 0x1160]
mov ecx, esi
push eax
lea eax, [ebx + 0x7534]
push eax
push ebx
call fcn.0040f9a0
mov cl, byte [esp + 0x17]
test cl, cl
je 0x40f296
cmp word [esp + 0x115c], 0
je 0x40f296
cmp dword [esp + 0x1c], 4
push ecx
jne 0x40f26e
lea eax, [esi + 0x4bf8]
lea edx, [esp + 0x1160]
mov ecx, eax
call fcn.0040d370
add esp, 4
jmp 0x40f288
lea eax, [esp + 0x1160]
mov ecx, esi
push eax
sub esp, 8
lea eax, [esp + 0x144]
push eax
call fcn.0040f770
mov byte [esp + 0x16], al
test al, al
je 0x40f2a7
mov cl, byte [esp + 0x17]
jmp 0x40f29a
mov al, byte [esp + 0x16]
cmp dword [ebx + 0xaea8], 2
jne 0x40f2ac
test cl, cl
jne 0x40f2b3
mov byte [esp + 0x23], 0
cmp byte [esp + 0x17], 0
je 0x40f2c7
test al, al
je 0x40f2c7
mov eax, 1
mov byte [esi + 0x4bf7], al
jmp 0x40f3a3
xor eax, eax
mov byte [esi + 0x4bf7], al
jmp 0x40f3a3
cmp byte [ebx + 0x74c8], 0
jne 0x40f3a3
test dl, dl
jne 0x40f3a3
cmp byte [ebx + 0x645a], dl
jne 0x40f30d
push dword [ebx + 0x7494]
lea ecx, [esi + 0x10]
push dword [ebx + 0x7490]
call fcn.0040f670
add esp, 8
jmp 0x40f3a3
movzx eax, byte [ebx + 0x7520]
mov ecx, dword [esi + 0x3ae0]
push eax
push dword [ebx + 0x7524]
call fcn.00423380
mov eax, dword [esi + 0x3ae0]
mov ecx, dword [ebx + 0x7490]
mov edx, dword [ebx + 0x7494]
mov dword [eax + 0x4c40], ecx
mov dword [eax + 0x4c44], edx
mov byte [eax + 0x4c58], 0
cmp dword [ebx + 0xaea8], 3
je 0x40f37d
cmp byte [ebx + 0x6459], 0xf
ja 0x40f37d
cmp dword [esi + 0x3ae8], 1
jbe 0x40f374
cmp byte [ebx + 0xaeac], 0
mov byte [esp + 0x1c], 1
jne 0x40f379
mov byte [esp + 0x1c], 0
push 0xf
jmp 0x40f394
mov al, byte [ebx + 0x7520]
mov byte [esp + 0x1c], al
movzx eax, byte [ebx + 0x6459]
cmp eax, 0x1d
ja 0x40f3a3
push eax
push dword [esp + 0x20]
mov ecx, dword [esi + 0x3ae0]
call fcn.00423520
mov ecx, ebx
call fcn.00404990
xor eax, eax
lea ecx, [ebx + 0x74fb]
cmp byte [ebx + 0x74fa], al
cmovne eax, ecx
lea ecx, [esi + 0x2f78]
push eax
lea eax, [ebx + 0x74a0]
push eax
call fcn.00411ea0
cmp byte [ebx + 0x7520], 0
mov cl, al
jne 0x40f3e2
mov byte [esi + 0x3af3], 0
jmp 0x40f40a
cmp byte [ebx + 0x645a], 0
je 0x40f40a
cmp dword [ebx + 0x7494], 0
jl 0x40f40a
jg 0x40f3ff
cmp dword [ebx + 0x7490], 0
jbe 0x40f40a
test cl, cl
je 0x40f40a
mov byte [esi + 0x3af3], 1
mov dl, byte [esp + 0x14]
xor al, al
mov byte [esp + 0x17], al
cmp byte [esp + 0x13], al
jne 0x40f4bf
cmp byte [esp + 0x23], al
je 0x40f4bf
test dl, dl
jne 0x40f480
test cl, cl
je 0x40f480
cmp di, 0x50
je 0x40f4bf
cmp di, 0x49
je 0x40f4bf
cmp dword [ebx + 0x74a0], 0
mov edx, 0x4c02b8
mov eax, 0x4c039c
mov ecx, 0x4c03a4
cmovne eax, edx
mov edx, 0x4c03a8
push eax
mov eax, dword [esi + 8]
cmp byte [eax + 0x6144], 0
cmove ecx, edx
push ecx
push str._s_s
call fcn.00403830
mov dl, byte [esp + 0x20]
add esp, 0xc
jmp 0x40f4bb
push 3
mov ecx, 0x4d8a18
mov byte [esp + 0x1b], 1
call fcn.0040d200
mov ecx, dword [esi + 8]
mov dl, byte [esp + 0x14]
cmp dword [ecx + 0x93a0], 0xf
je 0x40f4bb
test dl, dl
mov dword [esp + 0x1c], 0x18
mov eax, 0xc
cmovne eax, dword [esp + 0x1c]
mov dword [ecx + 0x93a0], eax
mov al, byte [esp + 0x17]
cmp byte [esp + 0x15], 0
jne 0x40f5d5
test dl, dl
jne 0x40f5d5
cmp di, 0x58
je 0x40f4e2
cmp di, 0x45
jne 0x40f5d5
cmp byte [esp + 0x22], 0
je 0x40f501
cmp dword [ebx + 0x7530], 5
jne 0x40f5d5
cmp byte [esp + 0x16], 0
je 0x40f5d5
test al, al
je 0x40f522
mov eax, dword [esi + 8]
cmp byte [eax + 0x6194], 0
je 0x40f5d5
push dword [esp + 0x138]
call dword [sym.imp.KERNEL32.dll_SetEndOfFile]
mov eax, dword [esi + 8]
cmp byte [eax + 0x6150], 0
je 0x40f535
and dword [ebx + 0x645c], 0xffffffdf
mov eax, dword [esi + 8]
cmp dword [eax + 0x7394], 0
jne 0x40f545
xor edx, edx
jmp 0x40f54b
lea edx, [ebx + 0x7480]
cmp dword [eax + 0x7390], 0
jne 0x40f558
xor ecx, ecx
jmp 0x40f55e
lea ecx, [ebx + 0x7478]
cmp dword [eax + 0x738c], 0
jne 0x40f56b
xor eax, eax
jmp 0x40f571
lea eax, [ebx + 0x7470]
push edx
push ecx
push eax
lea ecx, [esp + 0x140]
call fcn.00410e60
lea ecx, [esp + 0x134]
call fcn.00410970
mov eax, dword [esi + 8]
cmp byte [eax + 0x629b], 0
je 0x40f5b0
test dword [ebx + 0x645c], 0x800
je 0x40f5b0
lea ecx, [esp + 0x152]
call fcn.004115e0
mov eax, dword [esi + 8]
cmp byte [eax + 0x629c], 0
jne 0x40f5ce
mov edx, dword [ebx + 0x645c]
lea ecx, [esp + 0x152]
call fcn.004114e0
mov byte [esi + 0x4bf7], 1
lea ecx, [esp + 0x2c]
call fcn.0040bfe0
lea ecx, [esp + 0x134]
mov dword [esp + 0x31c0], 0xffffffff
call fcn.00410690
mov ecx, dword [esp + 0x24]
test cl, cl
mov al, byte [esp + 0x13]
mov ecx, dword [esp + 0x18]
je 0x40f60b
inc dword [esi + 0x3aec]
cmp byte [esi + 0x1870], 0
jne 0x40e91b
test cl, cl
jne 0x40e965
cmp byte [ebx + 0xaeac], cl
jne 0x40f634
mov ecx, ebx
call fcn.00404990
jmp 0x40e965
test al, al
jne 0x40e965
jmp 0x40e967