Function at 0x41f1b0
Capabilities:
Encode data using xor

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0xcc
mov edi, ecx
mov esi, dword [esp + 0xe4]
mov ebx, dword [esp + 0xe0]
mov dword [esp + 0xc8], 0
mov dword [esp + 0xc4], 0
mov dword [esp + 0xc0], 0
mov dword [esp + 0xbc], 0
mov dword [esp + 0xb8], 0
mov dword [esp + 0xac], 0
mov dword [esp + 0xb0], 2
mov dword [esp + 0xb4], 1
push 0x28501340
push dword [0x44819c]
call fcn.0043d520
add esp, 8
lea ecx, [esp + 0x2c]
lea edx, [esp + 0xac]
push ecx
push edx
push esi
push ebx
call eax
test eax, eax
mov dword [esp + 0x18], edi
je 0x41eacc
cmp dword [edi], 0xffffffff
jne 0x41eb82
jmp 0x41ef4f
push 0x1268aeb0
push dword [0x44819c]
call fcn.0043d520
add esp, 8
mov dword [esp], eax
push 0x4ab545
push dword [0x44819c]
call fcn.0043d520
add esp, 8
mov dword [esp + 0x14], eax
push 0xa2994af6
push dword [0x44819c]
call fcn.0043d520
add esp, 8
mov dword [esp + 0x10], eax
mov ebp, dword [esp + 0x2c]
test ebp, ebp
je 0x41eb5c
mov edi, dword [esp + 0x18]
jmp 0x41eb27
mov ebp, dword [ebp + 0x1c]
test ebp, ebp
je 0x41eb5c
push dword [ebp + 0xc]
push dword [ebp + 8]
push dword [ebp + 4]
call dword [esp + 0xc]
mov ecx, dword [esp + 0x18]
mov dword [ecx], eax
cmp eax, 0xffffffff
je 0x41eb20
push dword [ebp + 0x10]
push dword [ebp + 0x18]
push eax
call dword [esp + 0x20]
test eax, eax
je 0x41eb5c
push dword [edi]
call dword [esp + 0x14]
mov dword [edi], 0xffffffff
jmp 0x41eb20
push 0x6177aa44
push dword [0x44819c]
call fcn.0043d520
add esp, 8
push dword [esp + 0x2c]
call eax
mov edi, dword [esp + 0x18]
cmp dword [edi], 0xffffffff
je 0x41ef4f
mov edi, dword [esp + 0xe8]
mov eax, 0x89
nop
nop
cmp byte [edi + eax - 0x89], 0
lea eax, [eax + 1]
jne 0x41eb90
mov ecx, ebx
nop
inc eax
cmp byte [ecx], 0
lea ecx, [ecx + 1]
jne 0x41eba0
mov ecx, esi
nop
nop
nop
nop
nop
inc eax
cmp byte [ecx], 0
lea ecx, [ecx + 1]
jne 0x41ebb0
push eax
call fcn.00408b20
add esp, 4
mov dword [esp + 0x36], 0x37362940
mov dword [esp + 0x3a], 0x49574a34
mov dword [esp + 0x3e], 0x23606459
mov dword [esp + 0x42], 0x551a1e03
mov word [esp + 0x46], 0x7150
xor ebp, ebp
nop
nop
nop
nop
nop
movzx ecx, byte [esp + ebp + 0x36]
mov edx, ebp
or edx, 0x60
and edx, ecx
or ecx, ebp
or ecx, 0x17a21460
xor ecx, edx
mov edx, ecx
xor edx, 1
and ecx, 0x7e
add ecx, ecx
sub ecx, edx
inc cl
mov byte [esp + ebp + 0x36], cl
mov ecx, ebp
and ecx, 1
xor ebp, 1
lea ebp, [ebp + ecx*2]
cmp ebp, 0x12
jb 0x41ebf0
mov dword [esp + 4], 0xb6615154
mov byte [esp + 8], 0x97
mov ebp, 0xcb
nop
nop
nop
nop
nop
movzx ecx, byte [esp + ebp - 0xc7]
mov edx, ecx
not edx
or edx, ebp
add dl, dl
add dl, cl
neg dl
movzx ecx, dl
add ecx, ebp
add cl, 0xa6
mov byte [esp + ebp - 0xc7], cl
inc ebp
cmp ebp, 0xd0
jne 0x41ec40
movzx edx, byte [esp + 4]
mov dword [esp], eax
mov ebp, eax
test dl, dl
je 0x41ec9c
lea ecx, [esp + 5]
mov ebp, dword [esp]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov byte [ebp], dl
inc ebp
movzx edx, byte [ecx]
inc ecx
test dl, dl
jne 0x41ec90
mov byte [ebp], 0
movzx eax, byte [edi]
test al, al
je 0x41ecbc
inc edi
nop
nop
nop
nop
nop
nop
nop
nop
mov byte [ebp], al
inc ebp
movzx eax, byte [edi]
inc edi
test al, al
jne 0x41ecb0
mov byte [ebp], 0
movzx eax, byte [esp + 0x36]
test al, al
je 0x41ecdc
lea ecx, [esp + 0x37]
nop
nop
nop
mov byte [ebp], al
inc ebp
movzx eax, byte [ecx]
inc ecx
test al, al
jne 0x41ecd0
mov byte [ebp], 0
movzx eax, byte [ebx]
test al, al
je 0x41ecfc
inc ebx
nop
nop
nop
nop
nop
nop
nop
nop
mov byte [ebp], al
inc ebp
movzx eax, byte [ebx]
inc ebx
test al, al
jne 0x41ecf0
mov byte [ebp], 0x3a
mov dword [esp + 0x36], 0x4620eeee
mov dword [esp + 0x3a], 0x2e285a30
mov dword [esp + 0x3e], 0x59ed062e
mov dword [esp + 0x42], 0x5d52222a
mov dword [esp + 0x46], 0x52205f20
mov dword [esp + 0x4a], 0x653ac2fa
mov dword [esp + 0x4e], 0x1d186265
mov dword [esp + 0x52], 0x6c6e696b
mov dword [esp + 0x56], 0x6600d439
mov dword [esp + 0x5a], 0xe087a10
mov dword [esp + 0x5e], 0x1dd7d10e
mov dword [esp + 0x62], 0x153c030a
mov dword [esp + 0x66], 0x79160606
mov dword [esp + 0x6a], 0xe7c0304
mov dword [esp + 0x6e], 0x17786746
mov dword [esp + 0x72], 0x4119b055
mov dword [esp + 0x76], 0x6b6d6e69
mov dword [esp + 0x7a], 0x5b754c75
mov dword [esp + 0x7e], 0x1571064e
mov dword [esp + 0x82], 0x40464917
mov dword [esp + 0x86], 0x11416c1b
mov dword [esp + 0x8a], 0x8084754a
mov dword [esp + 0x8e], 0x635e5948
mov dword [esp + 0x92], 0x41535548
mov dword [esp + 0x96], 0x532e572c
mov dword [esp + 0x9a], 0x4f5f7523
mov dword [esp + 0x9e], 0x31343f39
mov dword [esp + 0xa2], 0x73816a31
mov dword [esp + 0xa6], 0x9b9f9970
mov word [esp + 0xaa], 0x589d
xor eax, eax
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov ecx, eax
add cl, 0x8b
xor cl, byte [esp + eax + 0x36]
add cl, 0xa8
mov byte [esp + eax + 0x36], cl
inc eax
cmp eax, 0x76
jne 0x41ee20
inc ebp
movzx eax, byte [esi]
test al, al
je 0x41ee4c
inc esi
nop
mov byte [ebp], al
inc ebp
movzx eax, byte [esi]
inc esi
test al, al
jne 0x41ee40
mov byte [ebp], 0
movzx eax, byte [esp + 0x36]
test al, al
je 0x41ee6c
lea ecx, [esp + 0x37]
nop
nop
nop
mov byte [ebp], al
inc ebp
movzx eax, byte [ecx]
inc ecx
test al, al
jne 0x41ee60
mov byte [ebp], 0
mov ebx, dword [esp]
sub ebp, ebx
push 0x12007ce3
push dword [0x44819c]
call fcn.0043d520
add esp, 8
push 0
push ebp
push ebx
mov edi, dword [esp + 0x24]
push dword [edi]
call eax
mov esi, eax
cmp eax, 0xffffffff
jne 0x41eee6
cmp dword [edi], 0xffffffff
je 0x41eee6
push 0x4f80c377
push dword [0x44819c]
call fcn.0043d520
add esp, 8
push 2
push dword [edi]
call eax
push 0xa2994af6
push dword [0x44819c]
call fcn.0043d520
add esp, 8
push dword [edi]
call eax
mov dword [edi], 0xffffffff
push ebx
call fcn.00408b30
add esp, 4
xor eax, eax
jmp 0x41f5e7
push ebx
call fcn.00408b30
add esp, 4
cmp esi, 0xffffffff
je 0x41ef4f
push 0x400
call fcn.00408b20
add esp, 4
mov dword [esp + 4], eax
mov dword [esp + 8], eax
add eax, 0x400
mov dword [esp + 0xc], eax
lea eax, [esp + 4]
mov ecx, edi
push eax
call fcn.0041f600
test al, al
je 0x41f5c4
mov ebp, dword [esp + 4]
mov edi, dword [esp + 8]
mov esi, edi
not esi
and esi, ebp
mov edx, ebp
not edx
and edx, edi
mov ecx, edx
sub ecx, esi
cmp edi, dword [esp + 0xc]
je 0x41ef56
mov eax, edi
sub eax, ebp
mov ebx, ebp
jmp 0x41f0a1
xor eax, eax
jmp 0x41f5e7
mov dword [esp + 0x14], edx
mov dword [esp + 0x10], ecx
lea eax, [ecx + 1]
mov ecx, edi
sub ecx, ebp
mov edx, ecx
shr edx, 1
mov dword [esp], ecx
mov dword [esp + 0x24], edx
add ecx, edx
cmp ecx, eax
ja 0x41ef78
mov ecx, eax
mov dword [esp + 0x20], ecx
push ecx
call fcn.00408b20
add esp, 4
mov ebx, eax
test ebp, ebp
je 0x41f081
mov dword [esp + 0x1c], esi
cmp ebx, ebp
mov edx, dword [esp]
mov dword [esp + 0x28], edi
jbe 0x41efd5
cmp edi, ebx
jbe 0x41efd5
test edx, edx
je 0x41f06d
mov eax, dword [esp]
lea esi, [ebx + eax]
dec esi
lea ecx, [eax + ebp]
dec ecx
mov edi, eax
and edi, 7
je 0x41f00f
neg edi
xor edx, edx
movzx eax, byte [ecx + edx]
mov byte [esi + edx], al
dec edx
cmp edi, edx
jne 0x41efc0
add ecx, edx
add esi, edx
add edx, dword [esp]
jmp 0x41f011
mov ecx, edx
shr ecx, 2
mov eax, ebp
mov edi, ebx
xchg esi, eax
rep movsd dword es:[edi], dword [esi]
xchg esi, eax
and edx, 0xfffffffc
lea esi, [ebx + edx]
add edx, ebp
mov ecx, dword [esp + 0x24]
and ecx, 1
mov eax, edx
mov edi, esi
xchg esi, eax
rep movsw word es:[edi], word [esi]
xchg esi, eax
test byte [esp], 1
je 0x41f06d
mov eax, dword [esp]
and eax, 2
movzx ecx, byte [edx + eax]
mov byte [esi + eax], cl
jmp 0x41f06d
mov edx, eax
mov eax, ebp
sub eax, dword [esp + 0x28]
cmp eax, 0xfffffff8
ja 0x41f06d
neg edx
xor edi, edi
movzx eax, byte [ecx + edi]
mov byte [esi + edi], al
movzx eax, byte [ecx + edi - 1]
mov byte [esi + edi - 1], al
movzx eax, byte [ecx + edi - 2]
mov byte [esi + edi - 2], al
movzx eax, byte [ecx + edi - 3]
mov byte [esi + edi - 3], al
movzx eax, byte [ecx + edi - 4]
mov byte [esi + edi - 4], al
movzx eax, byte [ecx + edi - 5]
mov byte [esi + edi - 5], al
movzx eax, byte [ecx + edi - 6]
mov byte [esi + edi - 6], al
movzx eax, byte [ecx + edi - 7]
mov byte [esi + edi - 7], al
add edi, 0xfffffff8
cmp edx, edi
jne 0x41f020
push dword [esp + 4]
call fcn.00408b30
add esp, 4
mov edi, dword [esp + 0x28]
mov esi, dword [esp + 0x1c]
mov dword [esp + 4], ebx
mov ecx, dword [esp + 0x10]
lea eax, [ebx + ecx]
mov dword [esp + 8], eax
mov eax, dword [esp + 0x20]
add eax, ebx
mov dword [esp + 0xc], eax
mov eax, dword [esp]
mov edx, dword [esp + 0x14]
mov dword [esp], eax
cmp eax, ecx
jae 0x41f167
add ecx, ebp
sub ecx, edi
add ebx, dword [esp]
cmp ecx, 1
jle 0x41f129
add ebx, ecx
add edx, ebp
mov eax, ecx
and eax, 7
je 0x41f0e9
mov dword [esp + 0x14], edx
mov ebp, esi
mov esi, ecx
neg eax
xor ecx, ecx
nop
movzx edx, byte [ebx + ecx - 1]
mov byte [ebx + ecx], dl
dec ecx
cmp eax, ecx
jne 0x41f0d0
add ebx, ecx
add esi, ecx
mov ecx, esi
mov esi, ebp
mov edx, dword [esp + 0x14]
sub esi, edx
add esi, edi
cmp esi, 0xfffffff8
ja 0x41f167
neg ecx
xor eax, eax
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov esi, ecx
mov ecx, dword [ebx + eax - 4]
mov dword [ebx + eax - 3], ecx
movzx ecx, word [ebx + eax - 8]
movzx edx, word [ebx + eax - 6]
mov word [ebx + eax - 5], dx
mov word [ebx + eax - 7], cx
mov ecx, esi
add eax, 0xfffffff8
cmp esi, eax
jne 0x41f100
jmp 0x41f167
lea edi, [ebx + 1]
mov ebp, ecx
shr ecx, 2
mov eax, ebx
xchg esi, eax
rep movsd dword es:[edi], dword [esi]
xchg esi, eax
mov edx, ebp
and edx, 0xfffffffc
lea eax, [ebx + edx]
inc eax
add edx, ebx
mov ecx, ebp
shr ecx, 1
and ecx, 1
mov esi, edx
mov edi, eax
xchg esi, esi
rep movsw word es:[edi], word [esi]
xchg esi, esi
mov ecx, ebp
test cl, 1
je 0x41f167
and ecx, 2
mov esi, ecx
movzx ecx, byte [edx + ecx]
mov byte [eax + esi], cl
mov eax, dword [esp + 4]
mov ecx, dword [esp]
mov byte [eax + ecx], 0
mov eax, dword [esp + 4]
mov edx, dword [esp + 8]
inc edx
mov dword [esp + 8], edx
mov dword [esp + 0x36], 0x4a4d4cbf
mov dword [esp + 0x3a], 0x2f232d24
mov dword [esp + 0x3e], 0x2321211f
mov byte [esp + 0x42], 0xf3
mov ecx, 0xff
xor esi, esi
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx edi, byte [esp + ecx - 0xc9]
mov ebx, esi
xor ebx, ecx
and ebx, edi
xor ebx, ecx
add bl, 8
mov byte [esp + ecx - 0xc9], bl
inc ecx
dec esi
cmp ecx, 0x10c
jne 0x41f1b0
movzx ecx, byte [esp + 0x36]
mov ebp, eax
test cl, cl
je 0x41f216
lea edi, [esp + 0x36]
mov esi, eax
mov ebp, eax
jmp 0x41f1f7
movzx ecx, byte [edi]
test cl, cl
je 0x41f216
mov ch, byte [esi]
test ch, ch
je 0x41f55a
inc esi
inc edi
lea ebx, [ebp + 1]
cmp ch, cl
je 0x41f20e
mov ebp, ebx
mov esi, ebx
je 0x41f1f0
lea edi, [esp + 0x36]
jmp 0x41f1f0
test ebp, ebp
je 0x41f55a
mov ebp, dword [esp + 0x18]
jmp 0x41f23c
cmp bl, bh
mov ebp, dword [esp + 0x18]
je 0x41f5cc
mov esi, eax
sub esi, edx
je 0x41f25d
mov ebx, edx
mov edi, eax
xor ecx, ecx
xchg esi, ebx
rep movsd dword es:[edi], dword [esi]
xchg esi, ebx
xor ecx, ecx
mov edi, eax
xchg esi, edx
rep movsw word es:[edi], word [esi]
xchg esi, edx
add dword [esp + 8], esi
mov ecx, ebp
lea eax, [esp + 4]
push eax
call fcn.0041f600
test al, al
je 0x41f5c4
mov dword [esp + 0x14], eax
mov edx, dword [esp + 4]
mov edi, dword [esp + 8]
mov esi, edi
not esi
and esi, edx
mov ecx, edx
not ecx
and ecx, edi
mov ebx, ecx
sub ebx, esi
cmp edi, dword [esp + 0xc]
je 0x41f2a0
mov eax, edi
sub eax, edx
mov ebp, edx
jmp 0x41f414
mov dword [esp + 0x20], ecx
lea eax, [ebx + 1]
mov ecx, edi
mov dword [esp + 0x10], edx
sub ecx, edx
mov edx, ecx
shr edx, 1
mov dword [esp], ecx
mov dword [esp + 0x1c], edx
add ecx, edx
cmp ecx, eax
ja 0x41f2c2
mov ecx, eax
mov dword [esp + 0x28], ecx
push ecx
call fcn.00408b20
add esp, 4
mov ebp, eax
mov edx, dword [esp + 0x10]
test edx, edx
je 0x41f3f8
mov dword [esp + 0x30], ebx
cmp ebp, edx
mov ebx, dword [esp]
mov dword [esp + 0x24], edi
jbe 0x41f39f
cmp edi, ebp
jbe 0x41f39f
test ebx, ebx
je 0x41f3e0
mov edx, dword [esp]
lea eax, [edx + ebp]
dec eax
mov ecx, dword [esp + 0x10]
add ecx, edx
dec ecx
mov edi, edx
and edi, 7
je 0x41f333
neg edi
xor edx, edx
nop
nop
nop
nop
nop
nop
nop
movzx ebx, byte [ecx + edx]
mov byte [eax + edx], bl
dec edx
cmp edi, edx
jne 0x41f320
add ecx, edx
add eax, edx
add edx, dword [esp]
mov edi, dword [esp + 0x10]
sub edi, dword [esp + 0x24]
cmp edi, 0xfffffff8
ja 0x41f3e0
neg edx
xor edi, edi
nop
nop
nop
nop
nop
nop
nop
nop
movzx ebx, byte [ecx + edi]
mov byte [eax + edi], bl
movzx ebx, byte [ecx + edi - 1]
mov byte [eax + edi - 1], bl
movzx ebx, byte [ecx + edi - 2]
mov byte [eax + edi - 2], bl
movzx ebx, byte [ecx + edi - 3]
mov byte [eax + edi - 3], bl
movzx ebx, byte [ecx + edi - 4]
mov byte [eax + edi - 4], bl
movzx ebx, byte [ecx + edi - 5]
mov byte [eax + edi - 5], bl
movzx ebx, byte [ecx + edi - 6]
mov byte [eax + edi - 6], bl
movzx ebx, byte [ecx + edi - 7]
mov byte [eax + edi - 7], bl
add edi, 0xfffffff8
cmp edx, edi
jne 0x41f350
jmp 0x41f3e0
mov ecx, ebx
shr ecx, 2
mov eax, edx
mov edi, ebp
xchg esi, eax
rep movsd dword es:[edi], dword [esi]
xchg esi, eax
mov eax, edx
mov edx, ebx
and edx, 0xfffffffc
lea edi, [edx + ebp]
add edx, eax
mov ecx, dword [esp + 0x1c]
and ecx, 1
mov eax, edx
mov dword [esp + 0x1c], edi
xchg esi, eax
rep movsw word es:[edi], word [esi]
xchg esi, eax
test bl, 1
je 0x41f3e0
mov eax, dword [esp]
and eax, 2
movzx ecx, byte [edx + eax]
mov edx, dword [esp + 0x1c]
mov byte [edx + eax], cl
push dword [esp + 4]
call fcn.00408b30
add esp, 4
mov ebx, dword [esp + 0x30]
mov edi, dword [esp + 0x24]
mov edx, dword [esp + 0x10]
mov dword [esp + 4], ebp
lea eax, [ebx + ebp]
mov dword [esp + 8], eax
mov eax, dword [esp + 0x28]
add eax, ebp
mov dword [esp + 0xc], eax
mov eax, dword [esp]
mov ecx, dword [esp + 0x20]
mov dword [esp], eax
cmp eax, ebx
jae 0x41f4d0
add ebx, edx
sub ebx, edi
add ebp, dword [esp]
cmp ebx, 1
jle 0x41f495
add ebp, ebx
mov eax, ebx
and eax, 7
je 0x41f45a
mov dword [esp + 0x20], ecx
mov dword [esp + 0x10], edx
neg eax
xor ecx, ecx
movzx edx, byte [ebp + ecx - 1]
mov byte [ebp + ecx], dl
dec ecx
cmp eax, ecx
jne 0x41f440
add ebp, ecx
add ebx, ecx
mov edx, dword [esp + 0x10]
mov ecx, dword [esp + 0x20]
add ecx, edx
add esi, edi
not esi
add esi, ecx
cmp esi, 7
jb 0x41f4d0
neg ebx
xor eax, eax
nop
nop
nop
nop
nop
mov ecx, dword [ebp + eax - 4]
mov dword [ebp + eax - 3], ecx
movzx ecx, word [ebp + eax - 8]
movzx edx, word [ebp + eax - 6]
mov word [ebp + eax - 5], dx
mov word [ebp + eax - 7], cx
add eax, 0xfffffff8
cmp ebx, eax
jne 0x41f470
jmp 0x41f4d0
lea edi, [ebp + 1]
mov ecx, ebx
shr ecx, 2
mov eax, ebp
xchg esi, eax
rep movsd dword es:[edi], dword [esi]
xchg esi, eax
mov edx, ebx
and edx, 0xfffffffc
lea eax, [edx + ebp]
inc eax
add edx, ebp
mov ecx, ebx
shr ecx, 1
and ecx, 1
mov esi, edx
mov edi, eax
xchg esi, esi
rep movsw word es:[edi], word [esi]
xchg esi, esi
test bl, 1
je 0x41f4d0
and ebx, 2
movzx ecx, byte [edx + ebx]
mov byte [eax + ebx], cl
nop
mov eax, dword [esp + 4]
mov ecx, dword [esp]
mov byte [eax + ecx], 0
mov eax, dword [esp + 4]
mov edx, dword [esp + 8]
inc edx
mov dword [esp + 8], edx
mov word [esp + 0x36], 0x5b5d
mov byte [esp + 0x38], 0x52
mov ecx, 0xa4de82d0
mov esi, 0x5b217d2f
nop
nop
movzx edi, byte [esp + ecx + 0x5b217d66]
mov ebx, esi
or ebx, edi
mov ebp, ecx
and ebp, edi
xor edi, esi
sub edi, ebp
add edi, ecx
and edi, ebx
lea ebx, [edi + edi]
not ebx
add ebx, edi
add bl, 0x80
mov byte [esp + ecx + 0x5b217d66], bl
inc ecx
dec esi
cmp ecx, 0xa4de82d3
jne 0x41f500
xor ecx, ecx
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx ebx, byte [eax + ecx]
mov bh, byte [esp + ecx + 0x36]
test bl, bl
je 0x41f230
inc ecx
cmp bl, bh
je 0x41f540
jmp 0x41f230
mov esi, dword [esp + 0x18]
cmp dword [esi], 0xffffffff
je 0x41f5c4
mov word [esi + 6], 0x3ea
mov word [esp + 0x36], 0xea03
lea eax, [esp + 0x36]
mov ecx, esi
push 0x440bdc
push 1
push 1
push 8
push 2
push eax
call fcn.0041ddb0
cmp dword [esi], 0xffffffff
je 0x41f5c4
push 0x4f80c377
push dword [0x44819c]
call fcn.0043d520
add esp, 8
push 2
push dword [esi]
call eax
push 0xa2994af6
push dword [0x44819c]
call fcn.0043d520
add esp, 8
push dword [esi]
call eax
mov dword [esi], 0xffffffff
mov dword [esp + 0x14], 0
mov eax, dword [esp + 4]
test eax, eax
je 0x41f5e3
cmp eax, dword [esp + 8]
je 0x41f5e3
push eax
call fcn.00408b30
add esp, 4
mov eax, dword [esp + 0x14]
add esp, 0xcc
pop esi
pop edi
pop ebx
pop ebp
ret 0xc