Function at 0x40fd40
Capabilities:
Encode data using xor

Disassembly:
sub esp, 0x38
mov eax, dword [0x42a824]
push ebx
push ebp
xor ebx, ebx
or ebp, 0xffffffff
push esi
cmp eax, ebx
push edi
mov dword [esp + 0x2c], ebx
mov dword [esp + 0x1c], ebp
mov dword [esp + 0x14], ebp
je 0x40fea6
mov eax, dword [0x42a818]
mov edi, dword [eax]
add eax, 4
cmp edi, ebx
mov dword [0x42a818], eax
je 0x40fe29
push 2
push 5
call fcn.00403930
add esp, 8
cmp eax, ebx
je 0x40fda1
cmp byte [eax], 0
je 0x40fda1
push ebx
push edi
call fcn.00403e50
push eax
call fcn.00401ee0
add esp, 0xc
mov eax, dword [0x42a814]
mov esi, dword [0x42a810]
mov dword [esp + 0x38], eax
mov dword [esp + 0x3c], ebx
fild qword [esp + 0x38]
mov dword [esp + 0x38], esi
mov dword [esp + 0x3c], ebx
fild qword [esp + 0x38]
fmul qword [0x422558]
fdiv st(1)
call fcn.0041ac64
mov edx, dword [edi + 0xa]
mov dword [esp + 0x3c], ebx
add esi, edx
mov ebp, eax
mov dword [esp + 0x38], esi
mov dword [0x42a810], esi
fild qword [esp + 0x38]
fmul qword [0x422558]
fdiv st(1)
call fcn.0041ac64
push eax
push ebp
push edi
fstp st(0)
call fcn.0040f940
add esp, 0xc
cmp eax, 0xffffffff
jne 0x40fe13
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x38
ret
push eax
call fcn.00401320
add esp, 4
mov eax, 1
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x38
ret
mov esi, dword [0x42a8d0]
mov edi, dword [sym.imp.USER32.dll_GetDlgItem]
cmp esi, ebx
mov dword [0x42a90c], ebx
mov dword [0x42a824], ebx
je 0x40fe63
push 1
push 5
call fcn.00403930
add esp, 8
push eax
push 0x417
push esi
call edi
push eax
call fcn.00407e40
add esp, 8
mov esi, dword [0x42a848]
cmp esi, ebx
je 0x40fe8b
push 3
push 5
call fcn.00403930
add esp, 8
push eax
push 0x3e9
push esi
call edi
push eax
call fcn.00407e40
add esp, 8
cmp dword [0x42a4d8], ebx
jne 0x40fe9d
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x38
ret
push ebx
call fcn.00401e60
add esp, 4
mov ecx, dword [0x42a44c]
mov dword [esp + 0x10], ebp
mov byte [ecx], 0
mov ecx, dword [0x42a4dc]
mov eax, dword [0x42a464]
cmp ecx, ebx
je 0x40fed4
lea eax, [eax + eax*4 + 5]
xor edx, edx
lea eax, [eax + eax*4]
shl eax, 2
div ecx
mov dword [esp + 0x18], eax
mov edi, 0x100
mov eax, dword [0x42a464]
mov ecx, dword [0x42a4dc]
inc eax
cmp eax, ecx
mov dword [0x42a464], eax
jae 0x410a06
mov eax, dword [0x42a460]
mov ebp, eax
push eax
mov dword [esp + 0x24], ebp
call fcn.00403a40
xor ebx, ebx
mov dword [0x42a460], eax
mov bx, word [ebp + 2]
push ebp
mov dword [esp + 0x3c], ebx
mov word [ebp + 2], 0
call fcn.0040e290
mov ecx, dword [0x42a450]
mov dword [esp + 0x2c], eax
add esp, 8
cmp byte [ecx], 0
je 0x40fed9
test bl, 2
je 0x41000b
mov edx, dword [0x42a448]
mov al, byte [ecx]
inc ecx
mov byte [edx], al
inc edx
test al, al
jne 0x40ff3f
mov ecx, dword [0x42a450]
mov edx, dword [0x42a444]
mov al, byte [ecx]
inc ecx
mov byte [edx], al
inc edx
test al, al
jne 0x40ff55
mov edx, dword [0x42a444]
push 0x5c
push edx
call fcn.00419c00
add esp, 8
test eax, eax
je 0x40ff78
mov byte [eax + 1], 0
call fcn.00407bf0
test eax, eax
je 0x40ffaf
mov edx, dword [0x42a464]
mov ecx, dword [0x42a4dc]
cmp edx, ecx
mov eax, ebp
jge 0x40ffaf
mov esi, dword [eax + 0x1a]
push eax
or esi, edi
mov dword [eax + 0x1a], esi
call fcn.00403a40
mov ecx, dword [0x42a4dc]
add esp, 4
inc edx
cmp edx, ecx
jl 0x40ff93
mov eax, dword [0x42a7e8]
test byte [eax], 0x10
je 0x41000b
mov ecx, dword [0x42a450]
push 0
push ecx
call fcn.004010a0
mov esi, eax
add esp, 8
cmp esi, 0xffffffff
je 0x410003
push 0xfffffffffffffff8
push esi
call fcn.00401200
lea edx, [esp + 0x48]
push 8
push edx
push esi
call fcn.00401120
push esi
call fcn.00401320
add esp, 0x18
cmp word [esp + 0x40], 0x7f7f
jne 0x410003
test byte [esp + 0x42], 2
jne 0x40fed9
mov eax, dword [0x42a448]
mov byte [eax], 0x30
mov eax, dword [0x42a464]
xor edx, edx
lea eax, [eax + eax*4 + 5]
lea eax, [eax + eax*4]
shl eax, 2
div dword [0x42a4dc]
mov ebx, eax
mov eax, dword [ebp + 0x1a]
test edi, eax
mov dword [esp + 0x28], ebx
jne 0x4109b1
test dword [0x42a898], eax
je 0x4109b1
test ah, 2
jne 0x4101d4
test al, 0x40
mov edi, 1
je 0x410072
mov ecx, dword [0x42a450]
push 0
push ecx
call fcn.004010a0
add esp, 8
cmp eax, 0xffffffff
je 0x410072
push eax
call fcn.00401320
add esp, 4
jmp 0x4100d1
mov eax, dword [esp + 0x24]
test eax, eax
je 0x4100d3
mov edx, dword [0x42a450]
push 0
push edx
mov dword [esp + 0x38], 0
call fcn.004010a0
mov esi, eax
add esp, 8
cmp esi, 0xffffffff
je 0x4100c6
push esi
call fcn.00401220
mov ecx, dword [ebp + 0x12]
add esp, 4
cmp eax, ecx
jne 0x4100bd
lea eax, [esp + 0x38]
lea ecx, [esp + 0x30]
push eax
push ecx
push esi
call fcn.004054c0
add esp, 0xc
push esi
call fcn.00401320
add esp, 4
mov edx, dword [esp + 0x30]
mov eax, dword [ebp + 0x16]
cmp edx, eax
jne 0x4100d3
xor edi, edi
test edi, edi
mov dword [0x42a90c], 0
je 0x4101e7
mov eax, dword [0x42a7ec]
test eax, eax
je 0x40fed4
push 2
push 5
call fcn.00403930
add esp, 8
test eax, eax
je 0x410116
cmp byte [eax], 0
je 0x410116
mov ecx, dword [0x42a450]
push ecx
call fcn.00401ee0
add esp, 4
mov edx, dword [0x42a450]
push edx
call fcn.00402310
mov ecx, dword [0x42a450]
mov edx, dword [0x42a44c]
add esp, 4
mov al, byte [ecx]
inc ecx
mov byte [edx], al
inc edx
test al, al
jne 0x410131
mov eax, dword [0x42a44c]
push str..__A
push eax
call fcn.00402000
mov ecx, dword [0x42a44c]
push 0
push ecx
call fcn.004010a0
add esp, 0x10
cmp eax, 0xffffffff
je 0x4101a1
push eax
call fcn.00401320
mov esi, dword [0x42a44c]
or ecx, 0xffffffff
mov edi, esi
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
mov edi, esi
push eax
mov dl, byte [ecx + esi - 1]
or ecx, 0xffffffff
inc dl
repne scasb al, byte es:[edi]
not ecx
dec ecx
mov byte [ecx + esi - 1], dl
mov eax, dword [0x42a44c]
push eax
call fcn.004010a0
add esp, 0xc
cmp eax, 0xffffffff
jne 0x410161
mov eax, dword [ebp + 0x1a]
test al, 0x20
je 0x4101f2
push 0
push ebp
call fcn.00403e50
mov ecx, dword [0x42a914]
mov edx, dword [0x42a44c]
push eax
push ecx
push edx
call fcn.0040fc60
add esp, 0x14
test eax, eax
je 0x410a06
jmp 0x4107b4
mov eax, dword [0x42a450]
push eax
call fcn.00402310
add esp, 4
jmp 0x4109b1
mov word [ebp + 2], 0x1f5
jmp 0x4108e3
test eax, 0x200000
je 0x410225
mov eax, dword [esp + 0x18]
mov esi, ebx
sub esi, eax
shr esi, 1
add esi, eax
push esi
push eax
push ebp
call fcn.0040f940
add esp, 0xc
cmp eax, 0xffffffff
mov dword [esp + 0x1c], eax
je 0x410a06
mov ebx, esi
mov dword [esp + 0x18], ebx
jmp 0x410229
mov ebx, dword [esp + 0x18]
mov eax, dword [0x42a44c]
push eax
call fcn.004010f0
mov esi, eax
add esp, 4
cmp esi, 0xffffffff
mov dword [esp + 0x10], esi
jne 0x41025d
mov ecx, dword [0x42a44c]
mov dword [0x42a90c], 0x11
push ecx
call fcn.0040a680
jmp 0x4109d7
mov al, byte [esp + 0x34]
test al, 1
je 0x410561
mov eax, dword [ebp + 0x28]
xor edx, edx
mov dx, word [ebp + 0x26]
mov edi, dword [edx*4 + 0x42a7a8]
add edi, 4
test eax, eax
jle 0x410290
mov edx, eax
push edi
call fcn.00403a40
add esp, 4
dec edx
mov edi, eax
jne 0x410282
mov eax, dword [edi + 0x1a]
test al, 0x20
je 0x4102d0
push esi
call fcn.00401320
push 0
push ebp
mov dword [esp + 0x1c], 0xffffffff
call fcn.00403e50
mov ecx, dword [0x42a44c]
push eax
mov eax, dword [0x42a914]
push eax
push ecx
call fcn.0040fc60
add esp, 0x18
test eax, eax
je 0x4109da
jmp 0x410477
test eax, 0x200000
je 0x4102ff
mov esi, dword [esp + 0x28]
sub esi, ebx
shr esi, 1
add esi, ebx
push esi
push ebx
push edi
call fcn.0040f940
add esp, 0xc
cmp eax, 0xffffffff
mov dword [esp + 0x14], eax
je 0x4109da
mov dword [esp + 0x18], esi
jmp 0x410318
mov edx, dword [edi + 6]
push edx
call fcn.0040b690
add esp, 4
mov dword [0x42a90c], eax
test eax, eax
jne 0x4109da
mov ecx, dword [0x42a4b8]
xor eax, eax
mov ax, word [ebp + 0x26]
xor edx, edx
cmp ecx, edx
mov eax, dword [eax*4 + 0x42a768]
mov ebx, dword [eax + 8]
mov ax, word [eax + 2]
mov dword [0x42a4a0], edx
mov dword [0x42a49c], edx
mov byte [0x42a478], 0x39
je 0x4103bd
cmp ax, dx
je 0x4103bd
cmp ebx, 2
je 0x4103bd
mov esi, 5
test ebx, ebx
mov dword [0x42a49c], esi
jne 0x410389
xor eax, eax
mov edx, 1
mov al, byte [ecx]
mov esi, eax
xor esi, 0x6a
inc ecx
cmp esi, 0x1f
mov dword [0x42a49c], esi
jle 0x410389
mov esi, 0x1f
mov dword [0x42a49c], esi
xor eax, eax
test esi, esi
jle 0x4103b2
mov ebp, ecx
sub ebp, 0x42a47c
mov bl, byte [eax + ebp + 0x42a47c]
mov cl, dl
add cl, al
xor bl, cl
xor bl, 0x6a
mov byte [eax + 0x42a47c], bl
inc eax
cmp eax, esi
jl 0x410397
mov ebp, dword [esp + 0x20]
mov byte [esi + 0x42a47c], 0
mov eax, dword [esp + 0x14]
cmp eax, 0xffffffff
jne 0x4103cb
mov eax, dword [0x425040]
mov ebx, dword [esp + 0x10]
lea edx, [esp + 0x38]
push edx
mov edx, dword [edi + 0xa]
lea ecx, [esp + 0x34]
push ecx
push edx
push eax
push ebx
call fcn.00403430
mov esi, eax
mov eax, dword [0x42a888]
add esp, 0x14
test esi, esi
je 0x410426
cmp eax, 2
je 0x4109c6
push 0
push edi
call fcn.00403e50
add esp, 8
push eax
push 0
push edi
call fcn.00403e50
add esp, 8
push eax
push esi
call fcn.0040b890
add esp, 0xc
mov dword [0x42a90c], eax
jmp 0x4109c6
cmp eax, 2
je 0x4109c6
mov eax, dword [esp + 0x14]
or esi, 0xffffffff
cmp eax, esi
je 0x410447
push eax
call fcn.00401320
add esp, 4
mov dword [esp + 0x14], esi
push ebx
call fcn.00401320
mov eax, dword [esp + 0x34]
mov ecx, dword [edi + 0x12]
add esp, 4
cmp eax, ecx
mov dword [esp + 0x10], esi
jne 0x41046a
mov ecx, dword [esp + 0x38]
mov eax, dword [edi + 0x16]
cmp ecx, eax
je 0x410477
call fcn.0040e9a0
test eax, eax
je 0x4109c6
mov eax, dword [0x42a7e8]
mov ecx, dword [0x42a4b8]
xor edx, edx
mov edi, dword [eax + 8]
mov ax, word [eax + 2]
cmp ecx, edx
mov dword [0x42a4a0], edx
mov dword [0x42a49c], edx
mov byte [0x42a478], 0x39
je 0x410514
test ax, ax
je 0x410514
cmp edi, 2
je 0x410514
mov esi, 5
test edi, edi
mov dword [0x42a49c], esi
jne 0x4104e0
xor eax, eax
mov edx, 1
mov al, byte [ecx]
mov esi, eax
xor esi, 0x6a
inc ecx
cmp esi, 0x1f
mov dword [0x42a49c], esi
jle 0x4104e0
mov esi, 0x1f
mov dword [0x42a49c], esi
xor eax, eax
test esi, esi
jle 0x410509
mov edi, ecx
sub edi, 0x42a47c
mov bl, byte [edi + eax + 0x42a47c]
mov cl, dl
add cl, al
xor bl, cl
xor bl, 0x6a
mov byte [eax + 0x42a47c], bl
inc eax
cmp eax, esi
jl 0x4104ee
mov ebp, dword [esp + 0x20]
mov byte [esi + 0x42a47c], 0
mov esi, dword [esp + 0x1c]
cmp esi, 0xffffffff
je 0x41052b
mov edi, dword [0x425040]
mov dword [0x425040], esi
jmp 0x41052f
mov edi, dword [esp + 0x38]
mov edx, dword [esp + 0x28]
mov eax, dword [esp + 0x18]
mov ecx, dword [0x42a44c]
push edx
push eax
push ecx
push ebp
call fcn.0040ea20
add esp, 0x10
cmp esi, 0xffffffff
je 0x410554
mov dword [0x425040], edi
test eax, eax
je 0x4109c6
jmp 0x4107b4
test al, 2
je 0x41062c
mov ecx, dword [0x42a7f4]
test ecx, ecx
je 0x4107b4
mov eax, dword [0x42a7f0]
test eax, eax
je 0x4107b4
mov edx, dword [esp + 0x10]
push eax
push ecx
push edx
call fcn.00401160
add esp, 0xc
mov dword [0x42a90c], eax
test eax, eax
jne 0x4109da
mov eax, dword [ebp + 6]
push eax
call fcn.0040b690
add esp, 4
mov dword [0x42a90c], eax
test eax, eax
jne 0x4109da
mov edx, dword [0x425040]
mov edi, dword [esp + 0x10]
xor ebx, ebx
mov byte [0x42a478], 0x39
mov dword [0x42a4a0], ebx
mov dword [0x42a49c], ebx
mov ecx, dword [ebp + 0xa]
push ebx
push ebx
push ecx
push edx
push edi
call fcn.00403430
mov esi, eax
mov eax, dword [0x42a888]
add esp, 0x14
cmp esi, ebx
je 0x41060d
cmp eax, 2
je 0x4109da
push ebx
push ebp
call fcn.00403e50
add esp, 8
push eax
push ebx
jmp 0x410739
cmp eax, 2
je 0x4109da
push edi
call fcn.00401320
add esp, 4
mov dword [esp + 0x10], 0xffffffff
jmp 0x4107b4
cmp dword [esp + 0x1c], 0xffffffff
jne 0x41064c
mov eax, dword [ebp + 6]
push eax
call fcn.0040b690
add esp, 4
mov dword [0x42a90c], eax
test eax, eax
jne 0x4109ec
mov esi, dword [0x42a4b8]
xor ecx, ecx
mov cx, word [ebp + 0x26]
xor ebx, ebx
cmp esi, ebx
mov eax, dword [ecx*4 + 0x42a768]
mov edi, dword [eax + 8]
mov ax, word [eax + 2]
mov dword [0x42a4a0], ebx
mov dword [0x42a49c], ebx
mov byte [0x42a478], 0x39
je 0x4106ed
cmp ax, bx
je 0x4106ed
cmp edi, 2
je 0x4106ed
xor edx, edx
mov ecx, 5
cmp edi, ebx
mov dword [0x42a49c], ecx
jne 0x4106bd
xor ecx, ecx
mov edx, 1
mov cl, byte [esi]
xor ecx, 0x6a
inc esi
cmp ecx, 0x1f
mov dword [0x42a49c], ecx
jle 0x4106bd
mov ecx, 0x1f
mov dword [0x42a49c], ecx
xor eax, eax
cmp ecx, ebx
jle 0x4106e2
sub esi, 0x42a47c
mov bl, dl
add bl, al
xor bl, byte [esi + eax + 0x42a47c]
xor bl, 0x6a
mov byte [eax + 0x42a47c], bl
inc eax
cmp eax, ecx
jl 0x4106c9
mov ebp, dword [esp + 0x20]
mov byte [ecx + 0x42a47c], 0
mov eax, dword [esp + 0x1c]
cmp eax, 0xffffffff
jne 0x4106fb
mov eax, dword [0x425040]
mov edi, dword [esp + 0x10]
lea edx, [esp + 0x30]
push edx
mov edx, dword [ebp + 0xa]
lea ecx, [esp + 0x3c]
push ecx
push edx
push eax
push edi
call fcn.00403430
mov esi, eax
mov eax, dword [0x42a888]
add esp, 0x14
test esi, esi
je 0x410756
cmp eax, 2
je 0x4109da
push 0
push ebp
call fcn.00403e50
add esp, 8
push eax
push 0
push ebp
call fcn.00403e50
add esp, 8
push eax
push esi
call fcn.0040b890
add esp, 0xc
mov dword [0x42a90c], eax
jmp 0x4109da
cmp eax, 2
je 0x4109da
mov eax, dword [ebp + 0x1a]
test al, 8
je 0x410780
test al, 6
lea eax, [ebp + 0x40]
jne 0x410770
lea eax, [ebp + 0x2c]
lea ecx, [eax + 0x10]
lea edx, [eax + 8]
push ecx
push edx
push eax
push edi
call dword [sym.imp.KERNEL32.dll_SetFileTime]
push edi
call fcn.00401320
mov eax, dword [esp + 0x3c]
mov ecx, dword [ebp + 0x12]
add esp, 4
cmp eax, ecx
mov dword [esp + 0x10], 0xffffffff
jne 0x4107a7
mov ecx, dword [esp + 0x30]
mov eax, dword [ebp + 0x16]
cmp ecx, eax
je 0x4107b4
call fcn.0040e9a0
test eax, eax
je 0x4109da
cmp dword [ebp + 0x22], 3
jne 0x4107f4
mov edx, dword [0x42a450]
push 0
push edx
call fcn.004010a0
add esp, 8
cmp eax, 0xffffffff
je 0x4107f4
push eax
call fcn.00401320
mov eax, dword [0x42a450]
push eax
call fcn.00402ab0
mov ecx, dword [0x42a450]
push ecx
call fcn.00401330
add esp, 0xc
mov dword [esp + 0x24], eax
cmp dword [ebp + 0x22], 2
je 0x4108af
mov eax, dword [ebp + 0x1a]
mov esi, 0x1000
test esi, eax
jne 0x4108af
mov eax, dword [esp + 0x24]
test eax, eax
je 0x410849
mov edx, dword [0x42a44c]
mov eax, dword [0x42a450]
push edx
push eax
call fcn.00411f80
add esp, 8
test eax, eax
je 0x410841
mov dword [0x42a904], 1
mov word [ebp + 2], 0x1f4
jmp 0x410859
mov word [ebp + 2], 0x1b
jmp 0x410859
mov ecx, dword [0x42a44c]
push ecx
push ebp
call fcn.0040e590
add esp, 8
mov ax, word [ebp + 2]
cmp ax, 0x1b
jne 0x41087e
mov edx, dword [0x42a450]
mov dword [0x42a90c], 0x16
push edx
call fcn.0040a680
jmp 0x4109c3
test dword [ebp + 0x1e], esi
je 0x4108e3
cmp ax, 0x1f4
push 0x100
jne 0x41089e
mov eax, dword [0x42a44c]
push eax
call fcn.00419a6c
add esp, 8
jmp 0x4108e3
mov ecx, dword [0x42a450]
push ecx
call fcn.00419a6c
add esp, 8
jmp 0x4108e3
mov edi, dword [0x42a44c]
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
inc ecx
push ecx
call fcn.00419d50
mov dword [ebp + 0xe], eax
mov ecx, dword [0x42a44c]
add esp, 4
mov edx, eax
mov al, byte [ecx]
inc ecx
mov byte [edx], al
inc edx
test al, al
jne 0x4108d3
mov word [ebp + 2], 0x1f6
mov eax, dword [0x42a90c]
test eax, eax
jne 0x4109c6
mov edx, dword [0x42a44c]
mov al, byte [esp + 0x34]
test al, 2
mov byte [edx], 0
je 0x410907
mov word [ebp + 2], 0
mov eax, dword [ebp + 0x22]
test eax, eax
je 0x410937
mov eax, dword [ebp + 0x1a]
test ah, 4
je 0x410937
mov ax, word [ebp + 2]
cmp ax, 0x17
je 0x410932
cmp ax, 0x19
je 0x410932
cmp ax, 0x1f5
je 0x410932
cmp ax, 0x1f4
jne 0x410937
call fcn.0040f520
cmp dword [ebp + 0x22], 3
jne 0x41095b
mov ax, word [ebp + 2]
cmp ax, 0x17
je 0x41094d
cmp ax, 0x19
jne 0x41095b
mov eax, dword [0x42a450]
push eax
call fcn.004027c0
add esp, 4
mov eax, dword [ebp + 0x1a]
test ah, 0x10
je 0x410993
mov eax, dword [0x42a83c]
test eax, eax
je 0x410974
cmp word [ebp + 2], 0x1f5
je 0x41098a
mov ax, word [ebp + 2]
cmp ax, 0x17
je 0x41098a
cmp ax, 0x19
je 0x41098a
cmp ax, 0x1f4
jne 0x410993
push ebp
call fcn.0040d760
add esp, 4
mov eax, dword [ebp + 0x1a]
test ah, 8
je 0x4109a1
mov dword [0x42a474], ebp
test byte [ebp + 0x1a], 0x10
je 0x4109b1
mov dword [0x42a854], 1
mov ecx, dword [esp + 0x28]
push ecx
call fcn.00401e60
mov dword [esp + 0x30], 1
add esp, 4
mov eax, dword [esp + 0x14]
cmp eax, 0xffffffff
je 0x4109da
mov edx, eax
push edx
call fcn.00401320
add esp, 4
mov eax, dword [esp + 0x1c]
cmp eax, 0xffffffff
je 0x4109ec
push eax
call fcn.00401320
add esp, 4
mov eax, dword [esp + 0x10]
cmp eax, 0xffffffff
je 0x4109fe
push eax
call fcn.00401320
add esp, 4
mov eax, dword [esp + 0x2c]
test eax, eax
jne 0x410a19
mov eax, dword [0x42a44c]
cmp byte [eax], 0
je 0x410a19
push eax
call fcn.0041a180
add esp, 4
mov eax, dword [esp + 0x2c]
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x38
ret