Function at 0x43ec10
Capabilities:
Receive data
Receive data on socket

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x566b11
mov eax, dword fs:[0]
push eax
sub esp, 0x178
mov eax, dword [0x5d60c4]
xor eax, ebp
mov dword [ebp - 0x10], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov ebx, ecx
mov dword [ebp - 0x154], ebx
mov eax, dword [ebp + 8]
mov dword [ebp - 0x158], eax
mov eax, dword [0x5e44e8]
push 9
mov byte [ebp - 0x112], 0
mov esi, dword [eax + 0x7a8]
lea edi, [eax + 0x734]
call fcn.00531933
add esp, 4
mov dword [ebp - 0x11c], eax
mov eax, 0x5d6c60
test esi, esi
mov ecx, 0x5d6c58
mov edx, 1
cmovne ecx, eax
call fcn.0041c440
mov edx, dword [ebp - 0x11c]
mov ecx, edi
call fcn.0041c690
mov edi, dword [ebp - 0x11c]
mov dword [ebp - 0x17c], edi
mov byte [edi + 8], 0
mov dword [ebp - 4], 0
lea ecx, [ebp - 0x168]
mov eax, dword [0x5e44e8]
add eax, 0x838
push eax
call fcn.0041ed90
mov byte [ebp - 4], 1
mov ecx, dword [ebp - 0x160]
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x43ecd7
sub ecx, edx
je 0x43ed4a
push 0x200
mov byte [ebp - 0x112], 1
call fcn.0052b7da
mov esi, eax
lea eax, [ebp - 0x10f]
push 0xff
push 0
push eax
mov dword [ebp - 0x164], esi
mov byte [esi], 0
call fcn.0052d9b0
lea eax, [ebp - 0x110]
mov byte [ebp - 0x110], 0
push eax
push dword [ebp - 0x168]
push str.SecureVNC_0_0x_08x__s
push 0xffffffffffffffff
push 0x1fe
push esi
call fcn.0041e5a0
mov eax, dword [ebx + 0x260]
add esp, 0x28
mov ecx, dword [eax + 4]
test ecx, ecx
je 0x43ed69
push esi
jmp 0x43ed64
mov eax, dword [ebx + 0x260]
mov edx, dword [0x5e44e8]
add edx, 0x838
mov ecx, dword [eax + 4]
test ecx, ecx
je 0x43ed69
push edx
mov eax, dword [ecx]
call dword [eax + 0x28]
xor eax, eax
mov byte [ebp - 0x111], 1
xor edx, edx
mov dword [ebp - 0x134], eax
mov dword [ebp - 0x144], edx
mov eax, dword [ebx + 0x260]
mov dword [ebp - 0x118], 0
mov dword [ebp - 0x140], 0
push edx
mov ecx, dword [eax + 4]
lea edx, [ebp - 0x140]
push edx
lea edx, [ebp - 0x118]
push edx
mov eax, dword [ecx]
mov eax, dword [eax + 0x30]
call eax
mov ecx, dword [ebx + 0x260]
test al, al
je 0x43f7f0
movzx eax, word [ebp - 0x140]
mov dword [ebp - 0x16c], eax
lea eax, [ebp - 0x16c]
push 2
push eax
call fcn.00487b20
mov esi, dword [ebx + 0x260]
test eax, eax
je 0x43f7e0
mov ecx, dword [0x5e44e8]
mov edi, dword [ebp - 0x140]
cmp dword [ecx + 0xe64], 0
je 0x43ef1c
cmp dword [esi + 8], 0xffffffff
je 0x43eec1
test edi, edi
jne 0x43ee19
or eax, 0xffffffff
jmp 0x43ef95
cmp byte [esi + 0x20], 0
je 0x43ee7c
mov eax, dword [esi + 0x18]
cmp byte [eax + 0x21], 0
je 0x43ee7c
cmp byte [esi + 0x70], 0
je 0x43ee4f
mov eax, dword [esi + 0x6c]
add eax, dword [esi + 0x74]
push edi
push dword [ebp - 0x118]
push eax
call fcn.0052d430
add esp, 0xc
add dword [esi + 0x74], edi
or eax, 0xffffffff
jmp 0x43ef95
lea eax, [ebp - 0x148]
mov dword [ebp - 0x148], 0
push eax
push edi
push dword [ebp - 0x118]
mov ecx, esi
call fcn.004881c0
mov edi, dword [ebp - 0x148]
mov ecx, dword [0x5e44e8]
jmp 0x43ee82
mov eax, dword [ebp - 0x118]
cmp dword [ecx + 0xe64], 0
je 0x43ef83
mov ecx, dword [esi + 8]
cmp ecx, 0xffffffff
je 0x43eea6
push ecx
push edi
push eax
mov ecx, esi
call fcn.00487320
jmp 0x43ef8c
mov ecx, dword [esi + 0xc]
cmp ecx, 0xffffffff
je 0x43ef7f
push ecx
push edi
push eax
mov ecx, esi
call fcn.00487320
jmp 0x43ef8c
cmp dword [esi + 0xc], 0xffffffff
je 0x43ef22
test edi, edi
jne 0x43eed3
or eax, 0xffffffff
jmp 0x43ef95
cmp byte [esi + 0x20], 0
je 0x43ee7c
mov eax, dword [esi + 0x18]
cmp byte [eax + 0x21], 0
je 0x43ee7c
cmp byte [esi + 0x70], 0
jne 0x43ee2e
lea eax, [ebp - 0x14c]
mov dword [ebp - 0x14c], 0
push eax
push edi
push dword [ebp - 0x118]
mov ecx, esi
call fcn.004881c0
mov edi, dword [ebp - 0x14c]
mov ecx, dword [0x5e44e8]
jmp 0x43ee82
cmp dword [esi + 0x10], 0xffffffff
jne 0x43ef26
xor eax, eax
jmp 0x43ef95
test edi, edi
je 0x43ee47
cmp byte [esi + 0x20], 0
je 0x43ee7c
mov eax, dword [esi + 0x18]
cmp byte [eax + 0x21], 0
je 0x43ee7c
cmp byte [esi + 0x70], 0
jne 0x43ee2e
lea eax, [ebp - 0x150]
mov dword [ebp - 0x150], 0
push eax
push edi
push dword [ebp - 0x118]
mov ecx, esi
call fcn.004881c0
mov edi, dword [ebp - 0x150]
mov ecx, dword [0x5e44e8]
jmp 0x43ee82
xor ecx, ecx
jmp 0x43ef8e
push edi
push eax
mov ecx, esi
call fcn.00487420
mov ecx, eax
xor eax, eax
cmp ecx, edi
sete al
test eax, eax
je 0x43f7ca
cmp dword [ebx + 0x274], 0
mov al, byte [ebp - 0x112]
mov edi, dword [ebp - 0x11c]
mov byte [ebp - 0x11d], al
jne 0x43efcb
mov ecx, edi
lea edx, [ecx + 1]
nop dword [eax]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x43efc0
sub ecx, edx
jne 0x43efd2
mov byte [ebp - 0x11d], 2
mov ecx, dword [ebx + 0x260]
lea eax, [ebp - 0x11d]
push 1
push eax
call fcn.00487940
mov ecx, dword [ebx + 0x260]
test eax, eax
push dword [ebp - 0x118]
mov ecx, dword [ecx + 4]
mov eax, dword [ecx]
je 0x43f7eb
call dword [eax + 0xc]
mov eax, dword [0x5e44e8]
mov ecx, dword [ebx + 0x260]
mov dword [ebp - 0x124], 0
push 2
cmp dword [eax + 0xe64], 0
lea eax, [ebp - 0x124]
push eax
je 0x43f030
call fcn.00487d10
jmp 0x43f035
call fcn.00487f70
test eax, eax
je 0x43f82d
mov eax, dword [ebp - 0x124]
mov ecx, 0x7e8
cmp ax, cx
ja 0x43f82d
movzx eax, ax
push eax
call fcn.0052b7da
movzx ecx, word [ebp - 0x124]
mov esi, eax
push ecx
push 0
push esi
mov dword [ebp - 0x138], esi
call fcn.0052d9b0
mov eax, dword [0x5e44e8]
add esp, 0x10
movzx edi, word [ebp - 0x124]
mov ebx, dword [ebx + 0x260]
cmp dword [eax + 0xe64], 0
je 0x43f09e
push edi
push esi
mov ecx, ebx
call fcn.00487d10
jmp 0x43f2e8
cmp dword [ebx + 0x10], 0xffffffff
je 0x43f2e0
test edi, edi
jne 0x43f0b4
or eax, 0xffffffff
jmp 0x43f2e2
cmp byte [ebx + 0x20], 0
je 0x43f271
mov ecx, dword [ebx + 0x18]
cmp byte [ecx + 0x21], 0
je 0x43f271
mov edx, dword [ebx + 0x1c]
lea esi, [ecx + 8]
test edx, edx
mov dword [ebp - 0x12c], edx
mov dword [ebp - 0x178], esi
mov ecx, edx
sete al
mov byte [ebp - 0x174], al
test edx, edx
jne 0x43f0f8
push esi
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov ecx, dword [ebx + 0x1c]
mov byte [ebp - 4], 2
mov dword [ebp - 0x128], 0
test ecx, ecx
je 0x43f11d
mov eax, dword [ecx]
lea edx, [ebp - 0x128]
push edx
push edi
push 0
call dword [eax + 8]
mov edi, eax
jmp 0x43f143
mov esi, dword [ebx + 0x18]
lea eax, [ebp - 0x128]
push eax
push edi
push 0
mov eax, dword [esi + 0x2a4]
call eax
mov edi, eax
add esp, 0xc
mov dword [esi + 0x2c0], edi
mov esi, dword [ebp - 0x178]
test edi, edi
jne 0x43f178
push str.VSocket::ReadExactIPV4_:_WriteExact:_DSMPlugin_RestoreBuffer_Alloc_Error_n
push 4
push 0x5d6df8
call fcn.0041d510
add esp, 0xc
cmp dword [ebp - 0x12c], 0
mov byte [ebp - 4], 1
jne 0x43f2e0
push esi
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
jmp 0x43f2e0
mov ecx, dword [ebp - 0x128]
mov eax, ecx
mov dword [ebp - 0x13c], eax
test eax, eax
jle 0x43f202
nop word [eax + eax]
mov eax, dword [0x5e44e8]
cmp dword [eax + 0xe64], 0
je 0x43f1b2
mov eax, dword [ebx + 8]
cmp eax, 0xffffffff
jne 0x43f1be
mov eax, dword [ebx + 0xc]
cmp eax, 0xffffffff
jne 0x43f1be
xor eax, eax
jmp 0x43f1cf
mov eax, dword [ebx + 0x10]
cmp eax, 0xffffffff
jne 0x43f1be
or eax, eax
jmp 0x43f1cf
push 0
push ecx
push edi
push eax
call dword [sym.imp.WS2_32.dll_recv]
mov ecx, dword [ebp - 0x128]
test eax, eax
jle 0x43f1df
add edi, eax
sub ecx, eax
mov dword [ebp - 0x128], ecx
jmp 0x43f1f8
je 0x43f267
call dword [sym.imp.WS2_32.dll_WSAGetLastError]
cmp eax, 0x2733
jne 0x43f247
mov ecx, dword [ebp - 0x128]
test ecx, ecx
jg 0x43f190
mov eax, dword [ebp - 0x13c]
lea ecx, [ebp - 0x170]
mov dword [ebp - 0x170], 0
push ecx
push eax
push dword [ebp - 0x138]
mov ecx, ebx
mov dword [ebp - 0x128], eax
call fcn.004882b0
cmp dword [ebp - 0x12c], 0
mov byte [ebp - 4], 1
jne 0x43f2c7
push esi
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
or eax, 0xffffffff
jmp 0x43f2e2
call dword [sym.imp.WS2_32.dll_WSAGetLastError]
push eax
push str.VSocket::ReadExactIPV4_:_socket_error_1:__d_n
push 4
push 0x5d6df8
call fcn.0041d510
add esp, 0x10
jmp 0x43f15b
push str.VSocket::ReadExactIPV4_:_zero_bytes_read1_n
jmp 0x43f14c
mov eax, dword [0x5e44e8]
cmp dword [eax + 0xe64], 0
je 0x43f293
mov eax, dword [ebx + 8]
cmp eax, 0xffffffff
jne 0x43f29f
mov eax, dword [ebx + 0xc]
cmp eax, 0xffffffff
jne 0x43f29f
xor eax, eax
jmp 0x43f2aa
mov eax, dword [ebx + 0x10]
cmp eax, 0xffffffff
jne 0x43f29f
or eax, eax
jmp 0x43f2aa
push 0
push edi
push esi
push eax
call dword [sym.imp.WS2_32.dll_recv]
test eax, eax
jle 0x43f2b4
add esi, eax
sub edi, eax
jmp 0x43f2c3
je 0x43f2cc
call dword [sym.imp.WS2_32.dll_WSAGetLastError]
cmp eax, 0x2733
jne 0x43f2e0
test edi, edi
jne 0x43f271
or eax, 0xffffffff
jmp 0x43f2e2
push str.VSocket::ReadExactIPV4_:_zero_bytes_read2_n
push 4
push 0x5d6df8
call fcn.0041d510
add esp, 0xc
xor eax, eax
mov esi, dword [ebp - 0x138]
test eax, eax
je 0x43f7bf
mov ebx, dword [ebp - 0x154]
mov eax, dword [ebx + 0x260]
mov ecx, dword [eax + 4]
lea eax, [ebp - 0x111]
push eax
push dword [ebp - 0x144]
movzx eax, word [ebp - 0x124]
mov edx, dword [ecx]
push eax
push esi
mov eax, dword [edx + 0x34]
call eax
test al, al
jne 0x43f362
mov eax, dword [ebx + 0x260]
mov ecx, dword [eax + 4]
mov eax, dword [ecx]
call dword [eax + 0x10]
mov edx, eax
lea esi, [edx + 1]
mov cl, byte [edx]
inc edx
test cl, cl
jne 0x43f333
mov ecx, dword [ebp - 0x158]
sub edx, esi
push edx
push eax
call fcn.0041bf40
mov esi, dword [ebp - 0x138]
mov dword [ebp - 0x134], 0
mov byte [ebp - 0x111], 0
jmp 0x43f37d
mov edi, dword [ebp - 0x134]
mov eax, 1
cmp byte [ebp - 0x111], 0
cmove edi, eax
mov dword [ebp - 0x134], edi
push esi
call fcn.0052b797
mov eax, dword [ebx + 0x260]
add esp, 4
mov ecx, dword [eax + 4]
mov eax, dword [ecx]
call dword [eax + 0x18]
cmp dword [ebx + 0x274], 0
mov edi, dword [ebp - 0x11c]
jne 0x43f783
mov ecx, edi
lea edx, [ecx + 1]
nop dword [eax]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x43f3b0
sub ecx, edx
je 0x43f783
mov eax, dword [0x5e44e8]
mov ecx, dword [ebx + 0x260]
push 2
cmp dword [eax + 0xe64], 0
lea eax, [ebp - 0x124]
push eax
je 0x43f3e3
call fcn.00487d10
jmp 0x43f3e8
call fcn.00487f70
test eax, eax
je 0x43f82d
mov eax, dword [ebp - 0x124]
mov ecx, 0x7e8
cmp ax, cx
ja 0x43f82d
movzx eax, ax
push eax
call fcn.0052b7da
mov edx, dword [0x5e44e8]
add esp, 4
movzx esi, word [ebp - 0x124]
mov edi, eax
mov ebx, dword [ebx + 0x260]
mov dword [ebp - 0x138], edi
cmp dword [edx + 0xe64], 0
je 0x43f442
push esi
push edi
mov ecx, ebx
call fcn.00487d10
jmp 0x43f658
cmp dword [ebx + 0x10], 0xffffffff
je 0x43f650
test esi, esi
jne 0x43f458
or eax, 0xffffffff
jmp 0x43f652
cmp byte [ebx + 0x20], 0
je 0x43f5e1
mov ecx, dword [ebx + 0x18]
cmp byte [ecx + 0x21], 0
je 0x43f5e1
mov edx, dword [ebx + 0x1c]
lea edi, [ecx + 8]
test edx, edx
mov dword [ebp - 0x12c], edx
mov dword [ebp - 0x184], edi
sete al
mov byte [ebp - 0x180], al
test edx, edx
jne 0x43f497
push edi
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
lea eax, [ebp - 0x130]
mov byte [ebp - 4], 3
push eax
push esi
push ecx
mov ecx, ebx
mov dword [ebp - 0x130], 0
call fcn.00488270
mov esi, eax
test esi, esi
jne 0x43f4ec
push str.VSocket::ReadExactIPV4_:_WriteExact:_DSMPlugin_RestoreBuffer_Alloc_Error_n
push 4
push 0x5d6df8
call fcn.0041d510
add esp, 0xc
cmp dword [ebp - 0x12c], 0
mov byte [ebp - 4], 1
jne 0x43f650
push edi
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
jmp 0x43f650
mov ecx, dword [ebp - 0x130]
mov eax, ecx
mov dword [ebp - 0x13c], eax
test eax, eax
jle 0x43f572
nop
mov eax, dword [0x5e44e8]
cmp dword [eax + 0xe64], 0
je 0x43f522
mov eax, dword [ebx + 8]
cmp eax, 0xffffffff
jne 0x43f52e
mov eax, dword [ebx + 0xc]
cmp eax, 0xffffffff
jne 0x43f52e
xor eax, eax
jmp 0x43f53f
mov eax, dword [ebx + 0x10]
cmp eax, 0xffffffff
jne 0x43f52e
or eax, eax
jmp 0x43f53f
push 0
push ecx
push esi
push eax
call dword [sym.imp.WS2_32.dll_recv]
mov ecx, dword [ebp - 0x130]
test eax, eax
jle 0x43f54f
add esi, eax
sub ecx, eax
mov dword [ebp - 0x130], ecx
jmp 0x43f568
je 0x43f5d7
call dword [sym.imp.WS2_32.dll_WSAGetLastError]
cmp eax, 0x2733
jne 0x43f5b7
mov ecx, dword [ebp - 0x130]
test ecx, ecx
jg 0x43f500
mov eax, dword [ebp - 0x13c]
lea ecx, [ebp - 0x15c]
mov dword [ebp - 0x15c], 0
push ecx
push eax
push dword [ebp - 0x138]
mov ecx, ebx
mov dword [ebp - 0x130], eax
call fcn.004882b0
cmp dword [ebp - 0x12c], 0
mov byte [ebp - 4], 1
jne 0x43f637
push edi
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
or eax, 0xffffffff
jmp 0x43f652
call dword [sym.imp.WS2_32.dll_WSAGetLastError]
push eax
push str.VSocket::ReadExactIPV4_:_socket_error_1:__d_n
push 4
push 0x5d6df8
call fcn.0041d510
add esp, 0x10
jmp 0x43f4cf
push str.VSocket::ReadExactIPV4_:_zero_bytes_read1_n
jmp 0x43f4c0
mov eax, dword [0x5e44e8]
cmp dword [eax + 0xe64], 0
je 0x43f603
mov eax, dword [ebx + 8]
cmp eax, 0xffffffff
jne 0x43f60f
mov eax, dword [ebx + 0xc]
cmp eax, 0xffffffff
jne 0x43f60f
xor eax, eax
jmp 0x43f61a
mov eax, dword [ebx + 0x10]
cmp eax, 0xffffffff
jne 0x43f60f
or eax, eax
jmp 0x43f61a
push 0
push esi
push edi
push eax
call dword [sym.imp.WS2_32.dll_recv]
test eax, eax
jle 0x43f624
add edi, eax
sub esi, eax
jmp 0x43f633
je 0x43f63c
call dword [sym.imp.WS2_32.dll_WSAGetLastError]
cmp eax, 0x2733
jne 0x43f650
test esi, esi
jne 0x43f5e1
or eax, 0xffffffff
jmp 0x43f652
push str.VSocket::ReadExactIPV4_:_zero_bytes_read2_n
push 4
push 0x5d6df8
call fcn.0041d510
add esp, 0xc
xor eax, eax
mov edi, dword [ebp - 0x138]
test eax, eax
je 0x43f7b4
cmp byte [ebp - 0x112], 0
jne 0x43f6f6
mov ebx, dword [ebp - 0x11c]
mov ecx, ebx
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x43f678
sub ecx, edx
mov esi, edi
mov edx, ebx
sub ecx, 4
jb 0x43f6a1
nop word [eax + eax]
mov eax, dword [edx]
cmp eax, dword [esi]
jne 0x43f6aa
add edx, 4
add esi, 4
sub ecx, 4
jae 0x43f690
cmp ecx, 0xfffffffc
je 0x43f76e
mov al, byte [edx]
cmp al, byte [esi]
jne 0x43f6e7
cmp ecx, 0xfffffffd
je 0x43f76e
mov al, byte [edx + 1]
cmp al, byte [esi + 1]
jne 0x43f6e7
cmp ecx, 0xfffffffe
je 0x43f76e
mov al, byte [edx + 2]
cmp al, byte [esi + 2]
jne 0x43f6e7
cmp ecx, 0xffffffff
je 0x43f76e
mov al, byte [edx + 3]
cmp al, byte [esi + 3]
je 0x43f76e
mov dword [ebp - 0x134], 0
jmp 0x43f76e
mov ebx, dword [ebp - 0x160]
mov ecx, ebx
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x43f701
sub ecx, edx
mov esi, edi
mov edx, ebx
sub ecx, 4
jb 0x43f724
mov eax, dword [edx]
cmp eax, dword [esi]
jne 0x43f729
add edx, 4
add esi, 4
sub ecx, 4
jae 0x43f713
cmp ecx, 0xfffffffc
je 0x43f762
mov al, byte [edx]
cmp al, byte [esi]
jne 0x43f6e7
cmp ecx, 0xfffffffd
je 0x43f762
mov al, byte [edx + 1]
cmp al, byte [esi + 1]
jne 0x43f6e7
cmp ecx, 0xfffffffe
je 0x43f762
mov al, byte [edx + 2]
cmp al, byte [esi + 2]
jne 0x43f6e7
cmp ecx, 0xffffffff
je 0x43f762
mov al, byte [edx + 3]
cmp al, byte [esi + 3]
je 0x43f762
mov dword [ebp - 0x134], 0
jmp 0x43f76e
mov ebx, dword [ebp - 0x134]
mov dword [ebp - 0x134], ebx
push edi
call fcn.0052b797
mov ebx, dword [ebp - 0x154]
add esp, 4
mov edi, dword [ebp - 0x11c]
mov edx, dword [ebp - 0x144]
inc edx
cmp byte [ebp - 0x111], 0
mov dword [ebp - 0x144], edx
jne 0x43ed80
cmp dword [ebp - 0x134], 0
je 0x43f82d
mov esi, 1
jmp 0x43f82f
push edi
call fcn.0052b797
add esp, 4
jmp 0x43f827
push esi
call fcn.0052b797
add esp, 4
jmp 0x43f827
mov eax, dword [ebx + 0x260]
push dword [ebp - 0x118]
mov ecx, dword [eax + 4]
mov eax, dword [ecx]
call dword [eax + 0xc]
jmp 0x43f827
mov ecx, dword [esi + 4]
push dword [ebp - 0x118]
mov eax, dword [ecx]
call dword [eax + 0xc]
jmp 0x43f82d
mov ecx, dword [ecx + 4]
push dword [ebp - 0x118]
mov eax, dword [ecx]
call dword [eax + 0xc]
mov eax, dword [ebx + 0x260]
mov ecx, dword [eax + 4]
mov eax, dword [ecx]
call dword [eax + 0x10]
mov esi, eax
lea edi, [esi + 1]
mov dl, byte [esi]
inc esi
test dl, dl
jne 0x43f811
mov ecx, dword [ebp - 0x158]
sub esi, edi
push esi
push eax
call fcn.0041bf40
mov edi, dword [ebp - 0x11c]
xor esi, esi
mov eax, dword [ebp - 0x164]
test eax, eax
je 0x43f842
push eax
call fcn.0052b797
add esp, 4
mov eax, dword [ebp - 0x160]
test eax, eax
je 0x43f855
push eax
call fcn.0052b797
add esp, 4
mov ecx, edi
lea edx, [ecx + 1]
nop word [eax + eax]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x43f860
sub ecx, edx
push ecx
push 0
push edi
call fcn.0052d9b0
push edi
call fcn.0052fd09
add esp, 0x10
mov eax, esi
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.0052b789
mov esp, ebp
pop ebp
ret 4