Function at 0x4098b0
Capabilities:
Encode data using base64

Disassembly:
sub esp, 0x14c
mov eax, dword [0x47bfd4]
xor eax, esp
push ebx
push ebp
mov dword [esp + 0x150], eax
mov eax, dword [esp + 0x15c]
push esi
push edi
mov edi, dword [esp + 0x160]
mov dword [esp + 0x48], eax
lea ecx, [edi + 0x31]
mov dword [esp + 0x3c], ecx
lea eax, [esp + 0x6c]
mov dword [esp + 0x30], eax
lea ecx, [esp + 0x64]
mov dword [esp + 0x1c], ecx
lea eax, [esp + 0x108]
xor edx, edx
lea ecx, [esp + 0x8c]
mov dword [esp + 0x58], eax
mov eax, 1
mov dword [esp + 0x20], ecx
mov ecx, dword [edi]
mov esi, 4
lea ebp, [esp + 0xb8]
mov dword [0x47dad4], eax
mov dword [0x47dad8], eax
mov dword [esp + 0x38], edi
mov dword [esp + 0x54], edx
mov dword [esp + 0x24], edx
mov dword [esp + 0x28], 0x467523
mov dword [esp + 0x10], ebp
mov dword [esp + 0x50], edx
mov dword [esp + 0x4c], ecx
mov dword [0x47dac8], edx
mov dword [0x47dac4], edx
mov dword [0x47dabc], 0x47a218
mov dword [0x47dac0], 0x47a224
mov dword [esp + 0x44], esi
mov dword [esp + 0x34], esi
lea eax, [edi + 8]
mov dword [esp + 0x14], ecx
movzx ecx, byte [esp + esi + 0x13]
dec esi
mov ebx, ecx
shr ebx, 4
mov bl, byte [ebx + str.0123456789abcdef]
mov byte [eax], bl
and ecx, 0xf
mov cl, byte [ecx + str.0123456789abcdef]
inc eax
mov byte [eax], cl
inc eax
cmp esi, edx
jne 0x409975
mov esi, dword [esp + 0x48]
movzx edx, byte [esi]
mov ecx, dword [edx*8 + 0x47aa80]
mov al, byte [ecx]
inc esi
test al, al
mov dword [esp + 0x18], edx
mov dword [0x47dadc], esi
je 0x4099cf
mov ebx, dword [esp + 0x1c]
lea esp, [esp]
mov byte [ebx], al
mov al, byte [ecx + 1]
inc ebx
inc ecx
test al, al
jne 0x4099c0
mov dword [esp + 0x1c], ebx
movzx eax, byte [edx*8 + 0x47aa84]
add eax, 0x47a988
mov dword [esp + 0x14], eax
mov ebx, dword [0x47dae0]
mov eax, dword [esp + 0x14]
movzx eax, byte [eax]
mov ecx, eax
and ecx, 0xc0
mov dword [esp + 0x40], ecx
mov ecx, dword [esp + 0x14]
and eax, 0x3f
inc ecx
cmp eax, 0x2c
mov dword [esp + 0x14], ecx
ja case.0x409a0e.24
jmp dword [eax*4 + 0x40a4fc]
mov eax, dword [0x47dad4]
test eax, eax
je case.0x409a0e.24
mov ecx, dword [esp + 0x14]
movzx eax, byte [ecx]
inc ecx
test eax, eax
mov dword [esp + 0x14], ecx
lea ecx, [esp + eax + 0x64]
mov dword [esp + 0x1c], ecx
jne 0x409a55
lea ecx, [esp + 0x1c]
push str.cwde
push ecx
call fcn.00408f00
mov edx, dword [esp + 0x20]
add esp, 8
jmp case.0x409a0e.24
mov byte [ecx], 0x64
inc ecx
cmp eax, 1
mov dword [esp + 0x1c], ecx
jne case.0x409a0e.24
mov eax, ecx
mov byte [eax], 0x71
inc eax
mov dword [esp + 0x1c], eax
jmp case.0x409a0e.24
test dl, 1
je 0x409a96
mov eax, dword [0x47dad4]
test eax, eax
je 0x409a8f
mov ecx, 4
mov byte [esp + 0x68], 0x64
jmp 0x409a9b
mov ecx, 2
jmp 0x409a9b
mov ecx, 1
mov eax, dword [esp + 0x14]
mov al, byte [eax]
test al, 1
je 0x409ace
mov dl, byte [esp + 0x168]
test dl, dl
je 0x409aca
mov edx, dword [edi + 0x104]
mov dword [esp + 0x60], 0
mov dword [0x47dacc], edx
mov dword [0x47dac4], ecx
mov edx, dword [esp + 0x18]
mov edi, dword [esp + 0x14]
and al, 2
inc edi
test al, al
mov dword [esp + 0x14], edi
je 0x40a19f
mov al, byte [esp + 0x168]
test al, al
je 0x40a19f
mov edi, dword [esp + 0x38]
mov eax, dword [edi + 0x100]
mov dword [esp + 0x60], 0
mov dword [0x47dad0], eax
mov dword [0x47dac8], ecx
jmp case.0x409a0e.24
mov eax, dword [esp + 0x14]
mov cl, byte [eax]
mov byte [ebp], cl
inc ebp
inc eax
mov dword [esp + 0x10], ebp
mov dword [esp + 0x14], eax
jmp case.0x409a0e.24
lea eax, [edx + 1]
test al, 4
je 0x409b37
mov byte [ebp], 0x74
jmp 0x409b49
lea ecx, [edx - 1]
test cl, 1
je 0x409b45
mov byte [ebp], 0x64
jmp 0x409b49
mov byte [ebp], 0x63
inc ebp
mov byte [ebp], 0x72
mov al, bl
inc ebp
add al, 0x30
mov byte [ebp], al
inc ebp
mov dword [esp + 0x10], ebp
jmp case.0x409a0e.24
mov ebx, edx
sar ebx, 3
and ebx, 7
mov dword [0x47dae0], ebx
mov cl, byte [ebx + str.ecsdfg]
mov byte [ebp], cl
inc ebp
mov byte [ebp], 0x73
inc ebp
mov dword [esp + 0x10], ebp
jmp case.0x409a0e.24
mov eax, dword [esp + 0x14]
movzx ebx, byte [eax]
inc eax
mov dword [esp + 0x14], eax
jmp 0x409b9d
mov ebx, edx
and ebx, 7
jmp 0x409b9d
xor ebx, ebx
mov dword [0x47dae0], ebx
mov al, byte [ebx*2 + str.alcldlblahchdhbhaxcxdxbxspbpsidi]
mov byte [ebp], al
mov cl, byte [ebx*2 + 0x47bc41]
inc ebp
mov byte [ebp], cl
inc ebp
mov dword [esp + 0x10], ebp
jmp case.0x409a0e.24
mov eax, dword [esp + 0x14]
movzx ebx, byte [eax]
inc eax
mov dword [0x47dae0], ebx
mov dword [esp + 0x14], eax
jmp case.0x409a0e.43
mov ebx, edx
and ebx, 7
jmp 0x409bdf
xor ebx, ebx
mov dword [0x47dae0], ebx
mov eax, dword [0x47dad4]
test eax, eax
je case.0x409a0e.43
mov byte [ebp], 0x65
inc ebp
mov al, byte [ebx*2 + 0x47bc50]
mov byte [ebp], al
mov cl, byte [ebx*2 + 0x47bc51]
inc ebp
mov byte [ebp], cl
inc ebp
mov dword [esp + 0x10], ebp
jmp case.0x409a0e.24
lea edx, [esp + 0x10]
push str.st_0__st
push edx
call fcn.00408f00
mov ebp, dword [esp + 0x18]
mov cl, byte [ebp - 5]
mov al, byte [0x47dae4]
mov edx, dword [esp + 0x20]
add esp, 8
add cl, al
mov byte [ebp - 5], cl
jmp case.0x409a0e.24
lea ecx, [esp + 0x10]
push 0x467fb4
push ecx
call fcn.00408f00
mov ebp, dword [esp + 0x18]
mov edx, dword [esp + 0x20]
add esp, 8
mov ecx, str.st_0_
mov al, 0x73
nop
mov byte [ebp], al
mov al, byte [ecx + 1]
inc ebp
inc ecx
test al, al
jne 0x409c60
mov cl, byte [ebp - 2]
mov al, byte [0x47dae4]
add cl, al
mov dword [esp + 0x10], ebp
mov byte [ebp - 2], cl
jmp case.0x409a0e.24
mov dword [0x47dac4], 1
mov dword [esp + 0x28], str.byte_ptr
jmp case.0x409a0e.24
mov eax, dword [0x47dad4]
test eax, eax
jne case.0x409a0e.11
mov dword [0x47dac4], 2
mov dword [esp + 0x28], str.word_ptr
jmp case.0x409a0e.24
mov dword [0x47dad4], 1
mov dword [0x47dac4], 4
mov dword [esp + 0x28], str.dword_ptr
jmp case.0x409a0e.24
mov dword [0x47dac4], 8
mov dword [esp + 0x28], str.qword_ptr
jmp case.0x409a0e.24
mov dword [0x47dac4], 0xa
mov dword [esp + 0x28], str.tbyte_ptr
jmp case.0x409a0e.24
mov eax, dword [0x47dad4]
test eax, eax
je case.0x409a0e.11
mov dword [0x47dac4], 6
mov dword [esp + 0x28], str.fword_ptr
jmp case.0x409a0e.24
cmp dword [0x47dae8], 3
je 0x409d4d
mov ecx, dword [esp + 0x28]
push ecx
lea edx, [esp + 0x14]
push edx
call fcn.00408f00
mov ebp, dword [esp + 0x18]
mov edx, dword [esp + 0x20]
add esp, 8
jmp case.0x409a0e.23
mov dword [0x47dac4], 0
mov eax, dword [esp + 0x24]
test eax, eax
je 0x409d7c
mov ecx, dword [eax*8 + 0x47aa80]
push ecx
lea edx, [esp + 0x14]
push edx
call fcn.00408f00
mov ebp, dword [esp + 0x18]
mov edx, dword [esp + 0x20]
add esp, 8
mov eax, dword [esp + 0x58]
mov byte [eax], 0
mov al, byte [esp + 0x108]
test al, al
lea ecx, [esp + 0x108]
je case.0x409a0e.24
lea esp, [esp]
mov byte [ebp], al
mov al, byte [ecx + 1]
inc ebp
inc ecx
test al, al
jne 0x409da0
mov dword [esp + 0x10], ebp
jmp case.0x409a0e.24
mov ebx, dword [esp + 0x34]
push 2
lea ecx, [esi + ebx]
push ecx
lea edx, [esp + 0x18]
push edx
call fcn.00408f30
mov eax, dword [esp + 0x1c]
mov byte [eax], 0x3a
mov edx, dword [edi + 4]
inc eax
mov dword [esp + 0x1c], eax
mov eax, dword [esp + 0x30]
push eax
push ebx
push esi
lea ecx, [esp + 0x28]
push ecx
push edx
call fcn.00409110
mov eax, dword [0x47dadc]
add esp, 0x20
lea esi, [eax + ebx + 2]
jmp 0x409f39
cmp edx, 0xe3
jne 0x409e26
mov eax, dword [0x47dad8]
test eax, eax
je 0x409e26
lea edx, [esp + 0x1c]
lea ecx, [esp + 0x64]
push str.jecxz
push edx
mov dword [esp + 0x24], ecx
call fcn.00408f00
add esp, 8
movsx eax, byte [esi]
mov dword [esp + 0x2c], eax
inc esi
jmp 0x409e54
push 4
lea ecx, [esp + 0x30]
push esi
push ecx
mov dword [esp + 0x38], 0
call fcn.00452ae0
mov esi, dword [0x47dadc]
mov eax, dword [esp + 0x50]
add esp, 0xc
add esi, eax
mov ebx, dword [esp + 0x48]
mov edx, dword [esp + 0x4c]
mov ecx, dword [esp + 0x2c]
mov eax, dword [esp + 0x44]
mov dword [0x47dadc], esi
sub esi, ebx
add esi, edx
mov edx, dword [esp + 0x24]
push edx
add ecx, esi
push eax
mov eax, dword [edi + 4]
mov dword [esp + 0x34], ecx
lea ecx, [esp + 0x34]
push ecx
lea edx, [esp + 0x1c]
push edx
push eax
call fcn.00409110
mov ebp, dword [esp + 0x24]
mov esi, dword [0x47dadc]
mov ebx, dword [0x47dae0]
mov edx, dword [esp + 0x2c]
add esp, 0x14
jmp case.0x409a0e.24
push 1
lea ecx, [esp + 0x14]
push esi
push ecx
call fcn.00408f30
mov ebp, dword [esp + 0x1c]
mov edx, dword [esp + 0x24]
add esp, 0xc
inc esi
mov dword [0x47dadc], esi
jmp case.0x409a0e.24
mov eax, edx
and eax, 0xfffffffe
cmp eax, 0xd4
jne 0x409f0a
mov cl, byte [esi]
inc esi
cmp cl, 0xa
mov dword [0x47dadc], esi
je case.0x409a0e.24
lea edx, [esp + 0x10]
push 0x47a980
push edx
call fcn.00408f00
mov ebp, dword [esp + 0x18]
mov edx, dword [esp + 0x20]
add esp, 8
jmp case.0x409a0e.24
mov dword [esp + 0x34], 1
jmp case.0x409a0e.20
mov dword [esp + 0x34], 2
mov ebx, dword [esp + 0x34]
push 0
push ebx
lea eax, [esp + 0x18]
push esi
push eax
call fcn.00408f80
mov esi, dword [0x47dadc]
add esp, 0x10
add esi, ebx
mov ebp, dword [esp + 0x10]
mov ebx, dword [0x47dae0]
mov edx, dword [esp + 0x18]
mov dword [0x47dadc], esi
jmp case.0x409a0e.24
test dl, 1
je 0x409f63
mov ecx, dword [esp + 0x34]
mov dword [0x47dac4], ecx
jmp 0x409f6d
mov dword [0x47dac4], 1
mov eax, dword [esp + 0x24]
test eax, eax
je 0x409f90
mov edx, eax
mov eax, dword [edx*8 + 0x47aa80]
push eax
lea ecx, [esp + 0x14]
push ecx
call fcn.00408f00
mov ebp, dword [esp + 0x18]
add esp, 8
mov edx, dword [esp + 0x24]
mov ebx, dword [esp + 0x44]
push edx
push ebx
mov byte [ebp], 0x5b
mov ecx, dword [edi + 4]
push esi
lea eax, [esp + 0x1c]
push eax
inc ebp
push ecx
mov dword [esp + 0x24], ebp
call fcn.00409110
mov ebp, dword [esp + 0x24]
mov esi, dword [0x47dadc]
mov edx, dword [esp + 0x2c]
add esi, ebx
mov ebx, dword [0x47dae0]
add esp, 0x14
mov byte [ebp], 0x5d
inc ebp
mov dword [0x47dadc], esi
mov dword [esp + 0x10], ebp
jmp case.0x409a0e.24
mov edx, dword [esp + 0x14]
movzx eax, byte [edx]
lea ecx, [ebx + eax*8]
mov eax, dword [ecx*4 + 0x47b5a0]
push eax
lea edx, [esp + 0x20]
push edx
call fcn.00408f00
mov eax, dword [esp + 0x1c]
mov edx, dword [esp + 0x20]
add esp, 8
inc eax
mov dword [esp + 0x14], eax
jmp case.0x409a0e.24
mov eax, dword [esp + 0x14]
movzx eax, byte [eax]
jmp 0x40a058
mov ecx, dword [0x47dae8]
mov eax, edx
and eax, 7
shl eax, 1
cmp ecx, 3
jne 0x40a058
inc eax
cmp eax, 3
jne 0x40a040
cmp ebx, eax
jle 0x40a058
lea eax, [ebx + 0xc]
mov ebx, dword [0x47dae4]
jmp 0x40a052
cmp eax, 7
jne 0x40a058
cmp ebx, 4
mov ebx, dword [0x47dae4]
je 0x40a052
mov ebx, eax
mov dword [0x47dae0], ebx
lea edx, [ebx + eax*8]
shl edx, 3
mov ecx, dword [edx + 0x47b640]
mov al, byte [ecx]
test al, al
je 0x40a083
mov edi, dword [esp + 0x1c]
mov edi, edi
mov byte [edi], al
mov al, byte [ecx + 1]
inc edi
inc ecx
test al, al
jne 0x40a070
mov dword [esp + 0x1c], edi
mov edi, dword [esp + 0x38]
movzx eax, byte [edx + 0x47b644]
mov edx, dword [esp + 0x18]
add eax, 0x47a988
mov dword [esp + 0x14], eax
jmp case.0x409a0e.24
movzx edx, byte [esi]
inc esi
cmp edx, 7
mov dword [0x47dadc], esi
jge 0x40a0b6
add edx, 0x100
jmp 0x40a169
cmp edx, 0x1f
jle 0x40a0cb
cmp edx, 0x27
jge 0x40a0cb
add edx, 0xe7
jmp 0x40a169
cmp edx, 0x2f
jle 0x40a0e0
cmp edx, 0x33
jge 0x40a0e0
add edx, 0xde
jmp 0x40a169
cmp edx, 0x7e
jle 0x40a0f5
cmp edx, 0xd0
jge 0x40a0f5
add edx, 0x94
jmp 0x40a169
mov edx, 0x104
jmp 0x40a169
mov dword [0x47dad8], 0
mov dword [esp + 0x44], 2
jmp 0x40a15f
mov dword [0x47dad4], 0
mov dword [esp + 0x34], 2
jmp 0x40a15f
mov dword [esp + 0x24], edx
jmp 0x40a157
mov eax, dword [esp + 0x30]
mov edx, dword [esp + 0x1c]
lea ecx, [esp + 0x6c]
cmp eax, ecx
mov byte [edx], 0
je 0x40a145
mov byte [eax], 0x20
inc eax
mov dword [esp + 0x30], eax
lea edx, [esp + 0x64]
push edx
lea eax, [esp + 0x34]
push eax
call fcn.00408f00
add esp, 8
lea ecx, [esp + 0x64]
mov dword [esp + 0x1c], ecx
movzx edx, byte [esi]
inc esi
mov dword [0x47dadc], esi
movzx eax, byte [edx*8 + 0x47aa84]
mov ecx, dword [edx*8 + 0x47aa80]
add eax, 0x47a988
mov dword [esp + 0x14], eax
mov al, byte [ecx]
test al, al
mov dword [esp + 0x18], edx
je case.0x409a0e.24
mov edi, dword [esp + 0x1c]
nop
mov byte [edi], al
mov al, byte [ecx + 1]
inc edi
inc ecx
test al, al
jne 0x40a190
mov dword [esp + 0x1c], edi
mov edi, dword [esp + 0x38]
mov eax, dword [esp + 0x40]
sub eax, 0x40
je 0x40a22d
sub eax, 0x40
je 0x40a21f
sub eax, 0x40
jne 0x4099e6
mov eax, dword [esp + 0x48]
sub esi, eax
mov ebx, esi
push ebx
push eax
lea edx, [esp + 0x48]
add edi, 0x11
push edx
mov dword [esp + 0x58], ebx
mov dword [esp + 0x4c], edi
call fcn.00409090
mov al, byte [esp + 0x174]
add esp, 0xc
test al, al
je 0x40a372
mov edi, dword [sym.imp.KERNEL32.dll_ReadProcessMemory]
xor esi, esi
jmp 0x40a200
mov eax, dword [esi + 0x47dac4]
test eax, eax
je 0x40a352
mov eax, dword [esp + 0x24]
test eax, eax
je 0x40a26b
mov ecx, dword [eax*8 + 0x47aa80]
jmp 0x40a271
mov byte [ebp], 0x2c
inc ebp
mov dword [esp + 0x10], ebp
jmp 0x4099e6
mov eax, dword [esp + 0x54]
test eax, eax
jne 0x4099e6
mov edx, dword [esp + 0x168]
mov eax, dword [esp + 0x24]
push edx
push eax
lea ecx, [esp + 0x60]
push ecx
push edi
call fcn.00409490
mov esi, dword [0x47dadc]
mov edx, dword [esp + 0x28]
add esp, 0x10
mov dword [esp + 0x54], 1
jmp 0x4099e0
mov ecx, dword [esi + 0x47dabc]
mov al, byte [ecx]
test al, al
mov edx, dword [esp + 0x20]
je 0x40a28b
jmp 0x40a280
mov byte [edx], al
mov al, byte [ecx + 1]
inc edx
inc ecx
test al, al
jne 0x40a280
mov eax, dword [esi + 0x47dacc]
mov dword [esp + 0x40], eax
mov ecx, 4
lea ebx, [ebx]
movzx eax, byte [esp + ecx + 0x3f]
dec ecx
mov ebx, eax
shr ebx, 4
mov bl, byte [ebx + str.0123456789abcdef]
mov byte [edx], bl
and eax, 0xf
mov al, byte [eax + str.0123456789abcdef]
inc edx
mov byte [edx], al
inc edx
test ecx, ecx
jne 0x40a2a0
mov ebx, dword [esp + 0x48]
mov eax, edx
mov byte [eax], 0x3d
mov dword [esp + 0x20], edx
mov edx, dword [esi + 0x47dac4]
lea ecx, [esp + 0x2c]
push ecx
mov ecx, dword [esp + 0x3c]
push edx
mov edx, dword [ecx + 4]
inc eax
mov dword [esp + 0x28], eax
mov eax, dword [esi + 0x47dacc]
push ebx
push eax
push edx
call edi
mov eax, dword [esi + 0x47dac4]
cmp dword [esp + 0x2c], eax
jne 0x40a311
push eax
lea eax, [esp + 0x24]
push ebx
push eax
call fcn.00408f30
add esp, 0xc
jmp 0x40a342
test eax, eax
je 0x40a33c
mov ebx, dword [esi + 0x47dac4]
mov eax, dword [esp + 0x20]
dec ebx
mov dword [esi + 0x47dac4], ebx
mov byte [eax], 0x3f
inc eax
mov byte [eax], 0x3f
inc eax
mov dword [esp + 0x20], eax
mov eax, dword [esi + 0x47dac4]
test eax, eax
jne 0x40a315
dec dword [esi + 0x47dac4]
mov eax, dword [esp + 0x20]
mov ebx, dword [esp + 0x4c]
mov byte [eax], 0x20
inc eax
mov dword [esp + 0x20], eax
add esi, 4
cmp esi, 8
jl 0x40a200
mov eax, dword [esp + 0x20]
lea ecx, [esp + 0x8c]
cmp eax, ecx
je 0x40a372
dec eax
mov dword [esp + 0x20], eax
mov ecx, dword [esp + 0x1c]
mov esi, dword [esp + 0x30]
lea edx, [esp + 0xb8]
mov eax, ebp
sub eax, edx
lea edx, [esp + 0x64]
sub ecx, edx
lea edx, [esp + 0x6c]
cmp esi, edx
je 0x40a3a6
xor edx, edx
test eax, eax
setne dl
add edx, ecx
add eax, edx
mov ecx, esi
lea edx, [esp + 0x6c]
sub ecx, edx
mov edx, dword [esp + 0x20]
lea edi, [esp + 0x8c]
mov esi, edx
sub esi, edi
lea edi, [ecx + eax]
cmp edi, 0x4c
jg 0x40a3e3
xor edx, edx
test esi, esi
setne dl
mov edi, 0x4d
sub edi, edx
xor edx, edx
test eax, eax
setne dl
sub edi, edx
sub edi, esi
sub edi, ecx
sub edi, eax
cmp edi, 1
jge 0x40a432
mov edx, dword [esp + 0x20]
lea eax, [esp + 0x8c]
cmp edx, eax
mov dword [esp + 0x50], 1
je 0x40a432
mov byte [edx], 0
mov al, byte [esp + 0x8c]
test al, al
mov edx, dword [esp + 0x3c]
je 0x40a41c
lea ecx, [esp + 0x8c]
sub ecx, edx
mov byte [edx], al
mov al, byte [ecx + edx + 1]
inc edx
test al, al
jne 0x40a411
mov ecx, str._n
mov al, 0xa
mov byte [edx], al
mov al, byte [ecx + 1]
inc edx
inc ecx
test al, al
jne 0x40a423
mov dword [esp + 0x3c], edx
mov eax, dword [esp + 0x30]
lea ecx, [esp + 0x6c]
cmp eax, ecx
je 0x40a45d
mov byte [eax], 0
mov al, byte [esp + 0x6c]
test al, al
je 0x40a45d
mov edx, dword [esp + 0x3c]
lea ecx, [ecx]
mov byte [edx], al
mov al, byte [ecx + 1]
inc edx
inc ecx
test al, al
jne 0x40a450
jmp 0x40a461
mov edx, dword [esp + 0x3c]
mov eax, dword [esp + 0x1c]
mov byte [eax], 0
mov al, byte [esp + 0x64]
test al, al
lea ecx, [esp + 0x64]
je 0x40a47f
mov byte [edx], al
mov al, byte [ecx + 1]
inc edx
inc ecx
test al, al
jne 0x40a474
mov byte [edx], 0x20
lea ecx, [esp + 0xb8]
inc edx
cmp ebp, ecx
je 0x40a4ab
mov byte [ebp], 0
mov al, byte [esp + 0xb8]
test al, al
je 0x40a4ab
lea ecx, [ecx]
mov byte [edx], al
mov al, byte [ecx + 1]
inc edx
inc ecx
test al, al
jne 0x40a4a0
mov eax, dword [esp + 0x50]
test eax, eax
jne 0x40a4db
mov eax, dword [esp + 0x20]
lea ecx, [esp + 0x8c]
cmp eax, ecx
je 0x40a4db
mov byte [eax], 0
mov al, byte [esp + 0x8c]
test al, al
je 0x40a4db
mov byte [edx], al
mov al, byte [ecx + 1]
inc edx
inc ecx
test al, al
jne 0x40a4d0
mov ecx, dword [esp + 0x158]
pop edi
pop esi
pop ebp
mov eax, ebx
pop ebx
xor ecx, esp
mov byte [edx], 0
call fcn.004525c5
add esp, 0x14c
ret