Function at 0x4a4838
Capabilities:
Resolve function by parsing pe exports

Disassembly:
push ebp
push edi
push esi
push ebx
sub esp, 0x8c
mov ebx, dword [esp + 0xa0]
mov ebp, dword [esp + 0xa8]
mov eax, dword [ebx + 0x34]
mov edx, eax
or edx, 8
mov dword [ebx + 0x34], edx
mov edx, dword [ebp]
test edx, edx
jne 0x4a487e
or eax, 9
mov dword [ebx + 0x34], eax
mov eax, dword [esp + 0xa4]
test eax, eax
jne 0x4a4914
mov dword [ebp], 2
mov eax, dword [ebx + 0x40]
test eax, eax
je 0x4a4944
mov eax, dword [ebx + 0x58]
test eax, eax
je 0x4a4944
mov dword [ebp], 5
mov eax, dword [ebx + 0x40]
lea edx, [ebp + 0xc]
mov dword [esp + 4], edx
mov dword [esp], ebx
call dword [eax + 4]
cmp eax, 0xffffffdb
je 0x4a5000
test eax, eax
jne 0x4a4fe0
xor esi, esi
mov eax, dword [ebx + 0xcc]
test eax, eax
je 0x4a48dc
mov dword [esp + 4], ebx
mov dword [esp], eax
call dword [ebx + 0xc]
mov dword [ebx + 0xcc], 0
mov edx, dword [ebx + 0x94]
test edx, edx
je 0x4a48fa
mov dword [esp + 4], ebx
mov dword [esp], edx
call dword [ebx + 0xc]
mov dword [ebx + 0x94], 0
and dword [ebx + 0x34], 0xfffffff6
mov dword [ebp], 0
mov eax, esi
add esp, 0x8c
pop ebx
pop esi
pop edi
pop ebp
ret
mov dword [ebx + 0x40], 0
mov eax, dword [ebx + 0x58]
test eax, eax
je 0x4a4935
mov eax, dword [eax + 0x1c]
test eax, eax
je 0x4a4935
lea edx, [ebx + 0x5c]
mov dword [esp + 4], edx
mov dword [esp], ebx
call eax
mov dword [ebx + 0x58], 0
jmp 0x4a4877
mov eax, dword [ebp]
cmp eax, 2
je 0x4a4968
cmp eax, 3
je 0x4a4991
cmp eax, 4
je 0x4a4db4
cmp eax, 5
jne 0x4a48bc
jmp 0x4a489b
mov eax, dword [ebx + 0xcc]
mov dword [ebp + 0xcc], eax
mov eax, dword [ebx + 0xd0]
mov dword [ebp + 0xd0], eax
mov dword [ebx + 0xcc], 0
mov dword [ebp], 3
mov eax, dword [ebx + 0xcb2c]
test eax, eax
jne 0x4a4d1a
mov edi, dword [ebx + 0x2c]
test edi, edi
je 0x4a541a
xor eax, eax
mov ecx, 0xffffffff
repne scasb al, byte es:[edi]
not ecx
dec ecx
mov dword [esp + 0x3c], ecx
mov edi, dword [ebx + 0x30]
test edi, edi
je 0x4a5407
xor eax, eax
mov ecx, 0xffffffff
repne scasb al, byte es:[edi]
not ecx
dec ecx
mov dword [esp + 0x34], ecx
mov edi, dword [ebx + 0xf0]
test edi, edi
je 0x4a53f4
xor eax, eax
mov ecx, 0xffffffff
repne scasb al, byte es:[edi]
not ecx
dec ecx
mov dword [esp + 0x38], ecx
mov edi, dword [ebx + 0xb8]
test edi, edi
je 0x4a53e1
xor eax, eax
mov ecx, 0xffffffff
repne scasb al, byte es:[edi]
not ecx
dec ecx
mov dword [esp + 0x40], ecx
mov edi, dword [ebx + 0xf4]
test edi, edi
je 0x4a53ce
xor eax, eax
mov ecx, 0xffffffff
repne scasb al, byte es:[edi]
not ecx
dec ecx
mov dword [esp + 0x44], ecx
mov edi, dword [ebx + 0xbc]
test edi, edi
je 0x4a53bb
xor eax, eax
mov ecx, 0xffffffff
repne scasb al, byte es:[edi]
not ecx
dec ecx
mov dword [esp + 0x48], ecx
mov edi, dword [ebx + 0xf8]
test edi, edi
je 0x4a53a5
xor eax, eax
mov ecx, 0xffffffff
repne scasb al, byte es:[edi]
not ecx
dec ecx
mov dword [esp + 0x4c], ecx
mov edi, dword [ebx + 0xc0]
test edi, edi
je 0x4a538f
xor eax, eax
mov ecx, 0xffffffff
repne scasb al, byte es:[edi]
not ecx
dec ecx
mov dword [esp + 0x50], ecx
mov edi, dword [ebx + 0xfc]
test edi, edi
je 0x4a5382
xor eax, eax
mov ecx, 0xffffffff
repne scasb al, byte es:[edi]
not ecx
dec ecx
mov dword [esp + 0x54], ecx
mov edi, dword [ebx + 0xc4]
test edi, edi
je 0x4a5375
xor eax, eax
mov ecx, 0xffffffff
repne scasb al, byte es:[edi]
not ecx
dec ecx
mov dword [esp + 0x58], ecx
mov esi, dword [esp + 0x3c]
mov ecx, dword [esp + 0x34]
lea eax, [esi + ecx + 0x3e]
add eax, dword [esp + 0x38]
add eax, dword [esp + 0x40]
add eax, dword [esp + 0x44]
add eax, dword [esp + 0x48]
add eax, dword [esp + 0x4c]
add eax, dword [esp + 0x50]
add eax, dword [esp + 0x54]
add eax, dword [esp + 0x58]
mov dword [esp + 0x30], eax
mov dword [esp + 4], ebx
mov dword [esp], eax
call dword [ebx + 4]
mov dword [esp + 0x2c], eax
test eax, eax
je 0x4a5358
mov eax, dword [esp + 0x2c]
mov byte [eax], 0x14
mov dword [esp + 4], 0x10
inc eax
mov dword [esp], eax
call fcn.004bf430
mov esi, dword [esp + 0x2c]
add esi, 0x11
mov edi, dword [ebx + 0x2c]
test edi, edi
je 0x4a5340
mov ecx, dword [esp + 0x3c]
mov dword [esp + 4], ecx
mov dword [esp], esi
call fcn.004a00d0
mov eax, dword [esp + 0x2c]
add eax, 0x15
mov esi, dword [ebx + 0x2c]
mov edi, eax
mov ecx, dword [esp + 0x3c]
rep movsb byte es:[edi], byte [esi]
mov ecx, dword [ebx + 0x30]
test ecx, ecx
je 0x4a5327
mov ecx, dword [esp + 0x34]
mov dword [esp + 4], ecx
mov dword [esp], edi
call fcn.004a00d0
lea eax, [edi + 4]
mov esi, dword [ebx + 0x30]
mov edi, eax
mov ecx, dword [esp + 0x34]
rep movsb byte es:[edi], byte [esi]
mov edx, dword [ebx + 0xf0]
test edx, edx
je 0x4a530e
mov ecx, dword [esp + 0x38]
mov dword [esp + 4], ecx
mov dword [esp], edi
call fcn.004a00d0
lea eax, [edi + 4]
mov esi, dword [ebx + 0xf0]
mov edi, eax
mov ecx, dword [esp + 0x38]
rep movsb byte es:[edi], byte [esi]
mov eax, dword [ebx + 0xb8]
test eax, eax
je 0x4a52f5
mov ecx, dword [esp + 0x40]
mov dword [esp + 4], ecx
mov dword [esp], edi
call fcn.004a00d0
lea eax, [edi + 4]
mov esi, dword [ebx + 0xb8]
mov edi, eax
mov ecx, dword [esp + 0x40]
rep movsb byte es:[edi], byte [esi]
mov eax, dword [ebx + 0xf4]
test eax, eax
je 0x4a52dc
mov ecx, dword [esp + 0x44]
mov dword [esp + 4], ecx
mov dword [esp], edi
call fcn.004a00d0
lea eax, [edi + 4]
mov esi, dword [ebx + 0xf4]
mov edi, eax
mov ecx, dword [esp + 0x44]
rep movsb byte es:[edi], byte [esi]
mov eax, dword [ebx + 0xbc]
test eax, eax
je 0x4a52b6
mov ecx, dword [esp + 0x48]
mov dword [esp + 4], ecx
mov dword [esp], edi
call fcn.004a00d0
lea eax, [edi + 4]
mov esi, dword [ebx + 0xbc]
mov edi, eax
mov ecx, dword [esp + 0x48]
rep movsb byte es:[edi], byte [esi]
mov eax, dword [ebx + 0xf8]
test eax, eax
je 0x4a529a
mov ecx, dword [esp + 0x4c]
mov dword [esp + 4], ecx
mov dword [esp], edi
call fcn.004a00d0
lea eax, [edi + 4]
mov esi, dword [ebx + 0xf8]
mov edi, eax
mov ecx, dword [esp + 0x4c]
rep movsb byte es:[edi], byte [esi]
mov eax, dword [ebx + 0xc0]
test eax, eax
je 0x4a527e
mov ecx, dword [esp + 0x50]
mov dword [esp + 4], ecx
mov dword [esp], edi
call fcn.004a00d0
lea eax, [edi + 4]
mov esi, dword [ebx + 0xc0]
mov edi, eax
mov ecx, dword [esp + 0x50]
rep movsb byte es:[edi], byte [esi]
mov ecx, dword [esp + 0x54]
mov eax, dword [ebx + 0xfc]
test eax, eax
mov dword [esp + 4], ecx
mov dword [esp], edi
je 0x4a5271
call fcn.004a00d0
lea eax, [edi + 4]
mov esi, dword [ebx + 0xfc]
mov edi, eax
mov ecx, dword [esp + 0x54]
rep movsb byte es:[edi], byte [esi]
mov ecx, dword [esp + 0x58]
mov esi, dword [ebx + 0xc4]
test esi, esi
mov dword [esp + 4], ecx
mov dword [esp], edi
je 0x4a52cf
call fcn.004a00d0
lea edx, [edi + 4]
mov esi, dword [ebx + 0xc4]
mov edi, edx
mov ecx, dword [esp + 0x58]
rep movsb byte es:[edi], byte [esi]
mov byte [edi], 0
mov dword [esp + 4], 0
lea eax, [edi + 1]
mov dword [esp], eax
call fcn.004a00d0
mov dword [ebx + 0xcb2c], 2
jmp 0x4a4d42
mov eax, dword [ebx + 0xcb30]
mov dword [esp + 0x2c], eax
mov edx, dword [ebx + 0xcb34]
mov dword [esp + 0x30], edx
mov dword [ebx + 0xcb30], 0
mov dword [ebx + 0xcb34], 0
mov dword [esp + 0x10], 0
mov dword [esp + 0xc], 0
mov ecx, dword [esp + 0x30]
mov dword [esp + 8], ecx
mov eax, dword [esp + 0x2c]
mov dword [esp + 4], eax
mov dword [esp], ebx
call fcn.004a0c2c
cmp eax, 0xffffffdb
je 0x4a5025
test eax, eax
jne 0x4a5047
mov eax, dword [ebx + 0xcc]
test eax, eax
je 0x4a4d8f
mov dword [esp + 4], ebx
mov dword [esp], eax
call dword [ebx + 0xc]
mov eax, dword [esp + 0x2c]
mov dword [ebx + 0xcc], eax
mov edx, dword [esp + 0x30]
mov dword [ebx + 0xd0], edx
mov dword [ebx + 0xcb2c], 0
mov dword [ebp], 4
lea eax, [ebp + 4]
mov dword [esp + 0x1c], eax
mov dword [esp + 0x18], 0
mov dword [esp + 0x14], 0
mov dword [esp + 0x10], 0
lea eax, [ebp + 0xc8]
mov dword [esp + 0xc], eax
lea eax, [ebp + 0xc4]
mov dword [esp + 8], eax
mov dword [esp + 4], 0x14
mov dword [esp], ebx
call fcn.004a2464
cmp eax, 0xffffffdb
je 0x4a5000
test eax, eax
jne 0x4a542d
mov eax, dword [ebx + 0x94]
test eax, eax
je 0x4a4e1c
mov dword [esp + 4], ebx
mov dword [esp], eax
call dword [ebx + 0xc]
mov eax, dword [ebp + 0xc4]
mov dword [ebx + 0x94], eax
mov eax, dword [ebp + 0xc8]
mov dword [ebx + 0x98], eax
mov ecx, dword [ebp + 0xc8]
mov dword [esp + 0x34], ecx
mov esi, dword [ebp + 0xc4]
lea edi, [esi + 0x11]
mov dword [esp], edi
call fcn.004a0068
mov dword [esp + 0x2c], eax
lea eax, [esi + 0x15]
mov dword [esp + 0x30], eax
mov eax, dword [esp + 0x2c]
lea edi, [edi + eax + 4]
mov dword [esp], edi
call fcn.004a0068
mov dword [esp + 0x3c], eax
lea edx, [edi + 4]
mov dword [esp + 0x40], edx
lea edi, [edi + eax + 4]
mov dword [esp + 0x60], edi
mov dword [esp], edi
call fcn.004a0068
mov dword [esp + 0x74], eax
mov ecx, dword [esp + 0x60]
lea ecx, [ecx + eax + 4]
mov dword [esp + 0x50], ecx
mov dword [esp], ecx
call fcn.004a0068
mov dword [esp + 0x64], eax
mov edx, dword [esp + 0x50]
lea edx, [edx + eax + 4]
mov dword [esp + 0x54], edx
mov dword [esp], edx
call fcn.004a0068
mov dword [esp + 0x68], eax
mov ecx, dword [esp + 0x54]
lea ecx, [ecx + eax + 4]
mov dword [esp + 0x58], ecx
mov dword [esp], ecx
call fcn.004a0068
mov dword [esp + 0x6c], eax
mov edx, dword [esp + 0x58]
lea edx, [edx + eax + 4]
mov dword [esp + 0x5c], edx
mov dword [esp], edx
call fcn.004a0068
mov dword [esp + 0x70], eax
mov ecx, dword [esp + 0x5c]
lea ecx, [ecx + eax + 4]
mov dword [esp + 0x44], ecx
mov dword [esp], ecx
call fcn.004a0068
mov dword [esp + 0x78], eax
mov eax, dword [esp + 0x44]
mov dl, byte [eax]
and edx, 1
mov al, byte [ebx + 0x44]
and eax, 0xfffffffe
or eax, edx
mov byte [ebx + 0x44], al
mov eax, dword [esp + 0x44]
inc eax
sub eax, esi
cmp dword [esp + 0x34], eax
jb 0x4a5014
mov esi, dword [ebx + 0x2c]
test esi, esi
je 0x4a51cc
lea ecx, [ebx + 0x58]
mov dword [esp + 0x34], ecx
lea eax, [ebx + 0x30]
mov dword [esp + 0x38], eax
mov dword [esp + 0x48], ebx
mov dword [esp + 0x4c], ebp
jmp 0x4a4fb0
mov ebp, eax
sub ebp, esi
mov dword [esp], ebp
mov ecx, esi
mov edx, dword [esp + 0x2c]
mov eax, dword [esp + 0x30]
call fcn.004a40f0
mov edi, eax
test eax, eax
je 0x4a4fa7
mov ecx, 0x59d580
mov edx, ebp
mov eax, esi
call fcn.004a4090
mov esi, eax
test eax, eax
je 0x4a500c
mov ecx, dword [eax + 8]
mov eax, dword [esp + 0x3c]
mov dword [esp + 4], eax
mov edx, dword [esp + 0x40]
mov dword [esp], edx
mov edx, dword [esp + 0x34]
mov eax, dword [esp + 0x38]
call fcn.004a4374
test eax, eax
je 0x4a50b5
test ebx, ebx
je 0x4a500c
mov esi, ebx
inc esi
je 0x4a500c
cmp byte [esi], 0
je 0x4a500c
mov dword [esp + 4], 0x2c
mov dword [esp], esi
call sub.msvcrt.dll_strchr
mov ebx, eax
test eax, eax
jne 0x4a4f4c
xor eax, eax
mov ecx, 0xffffffff
mov edi, esi
repne scasb al, byte es:[edi]
not ecx
lea ebp, [ecx - 1]
jmp 0x4a4f50
mov dword [esp + 8], str.Unrecoverable_error_exchanging_keys
mov dword [esp + 4], 0xfffffff8
mov dword [esp], ebx
call fcn.0049ffcc
mov esi, eax
jmp 0x4a48be
and dword [ebx + 0x34], 0xfffffff7
jmp 0x4a4907
mov ebx, dword [esp + 0x48]
mov ebp, dword [esp + 0x4c]
mov dword [ebp], 5
mov esi, 0xfffffffb
jmp 0x4a48be
mov eax, dword [esp + 0x2c]
mov dword [ebx + 0xcb30], eax
mov edx, dword [esp + 0x30]
mov dword [ebx + 0xcb34], edx
and dword [ebx + 0x34], 0xfffffff7
mov eax, 0xffffffdb
jmp 0x4a4907
mov dword [esp + 4], ebx
mov ecx, dword [esp + 0x2c]
mov dword [esp], ecx
mov dword [esp + 0x28], eax
call dword [ebx + 0xc]
mov dword [ebx + 0xcb2c], 0
mov dword [esp + 8], str.Unable_to_send_KEXINIT_packet_to_remote_host
mov eax, dword [esp + 0x28]
mov dword [esp + 4], eax
mov dword [esp], ebx
call fcn.0049ffcc
cmp eax, 0xffffffdb
je 0x4a5039
test eax, eax
je 0x4a4dad
mov eax, dword [ebp + 0xcc]
mov dword [ebx + 0xcc], eax
mov eax, dword [ebp + 0xd0]
mov dword [ebx + 0xd0], eax
mov dword [ebp], 0
and dword [ebx + 0x34], 0xfffffff6
mov eax, 0xffffffff
jmp 0x4a4907
mov ebx, dword [esp + 0x48]
mov ebp, dword [esp + 0x4c]
mov dword [ebx + 0x40], esi
mov al, byte [ebx + 0x44]
test al, 1
je 0x4a50d1
cmp dword [esp + 0x30], edi
je 0x4a546f
mov ecx, dword [esp + 0x60]
add ecx, 4
lea edx, [ebx + 0xf0]
lea eax, [ebx + 0xd4]
mov esi, dword [esp + 0x74]
mov dword [esp], esi
call fcn.004a44e0
test eax, eax
jne 0x4a5014
mov ecx, dword [esp + 0x50]
add ecx, 4
lea edx, [ebx + 0xb8]
lea eax, [ebx + 0x9c]
mov esi, dword [esp + 0x64]
mov dword [esp], esi
call fcn.004a44e0
test eax, eax
jne 0x4a5014
mov ecx, dword [esp + 0x54]
add ecx, 4
lea edx, [ebx + 0xf4]
lea eax, [ebx + 0xdc]
mov esi, dword [esp + 0x68]
mov dword [esp], esi
call fcn.004a4600
test eax, eax
jne 0x4a5014
mov ecx, dword [esp + 0x58]
add ecx, 4
lea edx, [ebx + 0xbc]
lea eax, [ebx + 0xa4]
mov esi, dword [esp + 0x6c]
mov dword [esp], esi
call fcn.004a4600
test eax, eax
jne 0x4a5014
lea ecx, [ebx + 0xf8]
lea edx, [ebx + 0xe8]
mov eax, dword [esp + 0x70]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x5c]
add eax, 4
mov dword [esp], eax
mov eax, ebx
call fcn.004a4720
test eax, eax
jne 0x4a5014
lea ecx, [ebx + 0xc0]
lea edx, [ebx + 0xb0]
mov eax, dword [esp + 0x78]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x44]
add eax, 4
mov dword [esp], eax
mov eax, ebx
call fcn.004a4720
test eax, eax
je 0x4a4894
jmp 0x4a5014
mov esi, dword [0x59d580]
test esi, esi
je 0x4a5014
mov edx, dword [esi]
mov dword [esp + 0x48], 0x59d580
test edx, edx
je 0x4a5014
lea ecx, [ebx + 0x58]
mov dword [esp + 0x34], ecx
lea eax, [ebx + 0x30]
mov dword [esp + 0x38], eax
mov dword [esp + 0x4c], ebx
mov ebx, dword [esp + 0x48]
mov dword [esp + 0x7c], ebp
mov ebp, dword [esp + 0x40]
jmp 0x4a5212
mov edx, dword [esi]
test edx, edx
je 0x4a5264
xor eax, eax
mov ecx, 0xffffffff
mov edi, edx
repne scasb al, byte es:[edi]
not ecx
dec ecx
mov dword [esp], ecx
mov ecx, edx
mov edx, dword [esp + 0x2c]
mov eax, dword [esp + 0x30]
call fcn.004a40f0
mov edi, eax
test eax, eax
je 0x4a525b
mov ecx, dword [esi + 8]
mov eax, dword [esp + 0x3c]
mov dword [esp + 4], eax
mov dword [esp], ebp
mov edx, dword [esp + 0x34]
mov eax, dword [esp + 0x38]
call fcn.004a4374
test eax, eax
je 0x4a544a
add ebx, 4
mov esi, dword [ebx]
test esi, esi
jne 0x4a520c
mov ebx, dword [esp + 0x4c]
mov ebp, dword [esp + 0x7c]
jmp 0x4a5014
call fcn.004a00d0
add edi, 4
jmp 0x4a4cc9
mov dword [esp], ebx
call fcn.004a6194
mov ecx, eax
mov edx, dword [esp + 0x50]
mov eax, edi
call fcn.004a28c4
add edi, eax
jmp 0x4a4c9a
mov dword [esp], ebx
call fcn.004a6194
mov ecx, eax
mov edx, dword [esp + 0x4c]
mov eax, edi
call fcn.004a28c4
add edi, eax
jmp 0x4a4c6b
call fcn.004a5de8
mov ecx, eax
mov edx, dword [esp + 0x48]
mov eax, edi
call fcn.004a28c4
add edi, eax
jmp 0x4a4c3c
call fcn.004a00d0
add edi, 4
jmp 0x4a4cf8
call fcn.004a5de8
mov ecx, eax
mov edx, dword [esp + 0x44]
mov eax, edi
call fcn.004a28c4
add edi, eax
jmp 0x4a4c0d
call fcn.004a5a68
mov ecx, eax
mov edx, dword [esp + 0x40]
mov eax, edi
call fcn.004a28c4
add edi, eax
jmp 0x4a4bde
call fcn.004a5a68
mov ecx, eax
mov edx, dword [esp + 0x38]
mov eax, edi
call fcn.004a28c4
add edi, eax
jmp 0x4a4baf
call fcn.00499408
mov ecx, eax
mov edx, dword [esp + 0x34]
mov eax, edi
call fcn.004a28c4
add edi, eax
jmp 0x4a4b80
mov ecx, 0x59d580
mov edx, dword [esp + 0x3c]
mov eax, esi
call fcn.004a28c4
lea edi, [esi + eax]
jmp 0x4a4b57
mov dword [esp + 8], str.Unable_to_allocate_memory
mov dword [esp + 4], 0xfffffffa
mov dword [esp], ebx
call fcn.0049ffcc
jmp 0x4a507b
mov dword [esp + 0x58], 0
jmp 0x4a4ac5
mov dword [esp + 0x54], 0
jmp 0x4a4aa7
mov dword [esp], ebx
call fcn.004a6194
call fcn.004a2870
mov dword [esp + 0x50], eax
jmp 0x4a4a89
mov dword [esp], ebx
call fcn.004a6194
call fcn.004a2870
mov dword [esp + 0x4c], eax
jmp 0x4a4a6b
call fcn.004a5de8
call fcn.004a2870
mov dword [esp + 0x48], eax
jmp 0x4a4a4d
call fcn.004a5de8
call fcn.004a2870
mov dword [esp + 0x44], eax
jmp 0x4a4a2f
call fcn.004a5a68
call fcn.004a2870
mov dword [esp + 0x40], eax
jmp 0x4a4a11
call fcn.004a5a68
call fcn.004a2870
mov dword [esp + 0x38], eax
jmp 0x4a49f3
call fcn.00499408
call fcn.004a2870
mov dword [esp + 0x34], eax
jmp 0x4a49d5
mov eax, 0x59d580
call fcn.004a2870
mov dword [esp + 0x3c], eax
jmp 0x4a49ba
mov eax, dword [ebx + 0xcc]
test eax, eax
je 0x4a5088
mov dword [esp + 4], ebx
mov dword [esp], eax
call dword [ebx + 0xc]
jmp 0x4a5088
mov dword [esp + 0x48], ebx
mov ebx, dword [esp + 0x4c]
mov ebp, dword [esp + 0x7c]
mov edx, dword [esp + 0x48]
mov eax, dword [edx]
mov dword [ebx + 0x40], eax
mov al, byte [ebx + 0x44]
test al, 1
jne 0x4a50c7
jmp 0x4a50d1
and eax, 0xfffffffe
mov byte [ebx + 0x44], al
jmp 0x4a50d1