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

Disassembly:
sub esp, 0x3c
push ebx
mov ebx, dword [esp + 0x44]
mov eax, dword [ebx + 0x14]
mov eax, dword [eax + 0xc]
push ebp
push esi
test eax, eax
je 0x50b13e
push eax
call dword [0x633d0c]
add esp, 4
push edi
mov edi, dword [ebx + 0x18]
cmp byte [edi + 9], 0
je 0x50b156
inc dword [edi + 0xc]
cmp byte [edi + 0xa], 0
jne 0x50b156
call fcn.004b2140
mov eax, dword [ebx]
test eax, eax
je 0x50b16d
mov eax, dword [eax + 0xc]
test eax, eax
je 0x50b16d
push eax
call dword [0x633d0c]
add esp, 4
mov ebp, dword [ebx + 0x1c]
test ebp, ebp
je 0x50b182
cmp ebp, 5
je 0x50b182
cmp ebp, 6
jne 0x50bc38
mov esi, dword [ebx + 0x18]
mov ecx, dword [esi + 4]
mov edx, dword [ecx]
mov eax, dword [ebx + 4]
mov ecx, dword [eax + 4]
xor ebp, ebp
mov dword [esp + 0x2c], edx
mov edx, dword [ecx]
mov dword [esp + 0x14], edx
mov dword [esp + 0x30], ebp
cmp dword [ebx], ebp
je 0x50b1b7
mov eax, dword [esi + 4]
cmp byte [eax + 0x14], 2
jne 0x50b1b7
mov ebp, 5
jmp 0x50b327
cmp byte [esi + 8], 0
jne 0x50b327
mov ebp, dword [esi + 4]
xor ebx, ebx
cmp byte [esi + 9], bl
je 0x50b1da
inc dword [esi + 0xc]
cmp byte [esi + 0xa], bl
jne 0x50b1da
mov edi, esi
call fcn.004b2140
mov al, byte [esi + 8]
cmp al, 2
je 0x50b308
cmp al, 1
je 0x50b308
mov ecx, dword [esi]
test dword [ecx + 0x1c], 0x2000000
je 0x50b209
mov edx, dword [ebp]
cmp byte [edx + 0xe], bl
jne 0x50b209
mov eax, 0xfffe
and word [ebp + 0x16], ax
movzx ecx, word [ebp + 0x16]
test cl, cl
jns 0x50b222
mov edx, dword [ebp + 0x4c]
cmp dword [edx], ebx
je 0x50b222
mov ebx, 0x106
jmp 0x50b308
mov eax, dword [esi + 4]
cmp byte [esi + 9], bl
je 0x50b25d
cmp dword [eax + 0x4c], esi
je 0x50b23f
test byte [eax + 0x16], 0x40
je 0x50b23f
mov ebx, 0x106
jmp 0x50b308
mov eax, dword [eax + 0x48]
test eax, eax
je 0x50b25d
cmp dword [eax], esi
je 0x50b256
cmp dword [eax + 4], 1
jne 0x50b256
cmp byte [eax + 8], 1
jne 0x50b218
mov eax, dword [eax + 0xc]
test eax, eax
jne 0x50b246
mov eax, ecx
xor ebx, ebx
and eax, 0xffef
mov word [ebp + 0x16], ax
cmp dword [ebp + 0x2c], ebx
jne 0x50b276
or eax, 0x10
mov word [ebp + 0x16], ax
cmp dword [ebp + 0xc], 0
jne 0x50b28b
mov eax, ebp
call fcn.00505080
mov ebx, eax
test ebx, ebx
je 0x50b276
jmp 0x50b28f
test ebx, ebx
je 0x50b2c1
cmp byte [ebp + 0x14], 0
jne 0x50b2c1
mov eax, dword [ebp + 0xc]
test eax, eax
je 0x50b2c1
mov dword [ebp + 0xc], 0
mov eax, dword [eax + 0x48]
mov edi, dword [eax + 0x14]
call fcn.004af3e0
mov eax, dword [edi + 0xd4]
cmp dword [eax + 0xc], 0
jne 0x50b2c1
mov eax, edi
call fcn.004c4250
cmp bl, 5
jne 0x50b2d9
cmp byte [ebp + 0x14], 0
jne 0x50b2d9
push ebp
call fcn.004bf730
add esp, 4
test eax, eax
jne 0x50b276
test ebx, ebx
jne 0x50b308
cmp byte [esi + 8], bl
jne 0x50b2fa
inc dword [ebp + 0x28]
cmp byte [esi + 9], bl
je 0x50b2fa
mov byte [esi + 0x28], 1
mov ecx, dword [ebp + 0x48]
lea edx, [esi + 0x20]
mov dword [esi + 0x2c], ecx
mov dword [ebp + 0x48], edx
mov byte [esi + 8], 1
cmp byte [ebp + 0x14], 1
jae 0x50b308
mov byte [ebp + 0x14], 1
cmp byte [esi + 9], 0
je 0x50b319
add dword [esi + 0xc], 0xffffffff
jne 0x50b319
call fcn.004b2120
mov ebp, ebx
mov ebx, dword [esp + 0x50]
mov dword [esp + 0x30], 1
cmp dword [ebx + 0xc], 0
jne 0x50b352
test ebp, ebp
jne 0x50b37b
mov eax, dword [ebx + 0x18]
mov ecx, dword [eax + 4]
mov eax, dword [ecx + 0x20]
push ebp
push 0xffffffffffffffff
push eax
mov eax, dword [ebx + 4]
call fcn.004ffdc0
add esp, 0xc
cmp eax, 7
jne 0x50b356
mov ebp, eax
jmp 0x50b37b
test ebp, ebp
jne 0x50b37b
cmp dword [ebx + 0xc], 0
jne 0x50b37b
mov eax, dword [ebx + 4]
lea edx, [ebx + 8]
push edx
push 2
push eax
call fcn.00505340
mov ebp, eax
add esp, 0xc
test ebp, ebp
jne 0x50b37b
mov dword [ebx + 0xc], 1
mov eax, dword [ebx + 4]
mov eax, dword [eax + 4]
mov esi, dword [eax + 0x20]
mov ecx, dword [ebx + 0x18]
mov eax, dword [eax]
mov ecx, dword [ecx + 4]
movzx eax, byte [eax + 5]
mov edx, dword [ecx + 0x20]
mov dword [esp + 0x1c], edx
mov dword [esp + 0x18], esi
mov dword [esp + 0x34], eax
test ebp, ebp
jne 0x50b3af
cmp eax, 5
jne 0x50b3af
cmp edx, esi
je 0x50b3af
lea ebp, [eax + 3]
mov ecx, dword [ecx + 0x2c]
mov edi, dword [esp + 0x54]
mov dword [esp + 0x10], ecx
mov dword [esp + 0x20], 0
test edi, edi
jl 0x50b3cc
cmp dword [esp + 0x20], edi
jge 0x50b442
mov esi, dword [ebx + 0x10]
mov ecx, dword [esp + 0x10]
cmp esi, ecx
ja 0x50b446
test ebp, ebp
jne 0x50b484
mov edx, dword [ebx + 0x18]
mov ecx, dword [edx + 4]
mov eax, dword [0x633dc8]
xor edx, edx
div dword [ecx + 0x20]
inc eax
cmp esi, eax
je 0x50b434
mov eax, dword [esp + 0x2c]
push 2
lea edx, [esp + 0x28]
push edx
push esi
push eax
mov eax, dword [eax + 0xcc]
call eax
mov ebp, eax
add esp, 0x10
test ebp, ebp
jne 0x50b434
mov ecx, dword [esp + 0x24]
mov eax, dword [ecx + 4]
push ebp
push eax
push esi
push ebx
call fcn.004c51c0
mov ebp, eax
mov eax, dword [esp + 0x34]
add esp, 0x10
test eax, eax
je 0x50b434
call fcn.004b1190
mov eax, 1
add dword [ebx + 0x10], eax
add dword [esp + 0x20], eax
jmp 0x50b3c2
mov ecx, dword [esp + 0x10]
test ebp, ebp
jne 0x50b484
mov eax, dword [ebx + 0x10]
mov edx, ecx
sub edx, eax
inc edx
mov dword [ebx + 0x24], ecx
mov dword [ebx + 0x20], edx
cmp eax, ecx
ja 0x50b491
cmp dword [ebx + 0x28], ebp
jne 0x50ba4d
mov eax, dword [ebx + 0x18]
mov ecx, dword [eax + 4]
mov eax, dword [ecx]
mov edx, dword [eax + 0x58]
add eax, 0x58
mov dword [ebx + 0x2c], edx
mov dword [eax], ebx
mov dword [ebx + 0x28], 1
jmp 0x50ba4d
cmp ebp, 0x65
jne 0x50ba4d
mov ecx, dword [esp + 0x10]
test ecx, ecx
jne 0x50b4ea
mov esi, dword [ebx + 4]
cmp byte [esi + 9], cl
je 0x50b4ac
inc dword [esi + 0xc]
cmp byte [esi + 0xa], cl
jne 0x50b4ac
mov edi, esi
call fcn.004b2140
mov eax, dword [esi + 4]
mov dword [eax + 0x2c], 0
mov ecx, dword [esi + 4]
push ecx
call fcn.004e6140
add esp, 4
cmp byte [esi + 9], 0
mov ebp, eax
je 0x50b4d5
add dword [esi + 0xc], 0xffffffff
jne 0x50b4d5
call fcn.004b2120
mov dword [esp + 0x10], 1
test ebp, ebp
je 0x50b4ea
cmp ebp, 0x65
jne 0x50b59f
mov edi, dword [ebx + 8]
mov esi, dword [ebx + 4]
mov ebp, dword [esi + 4]
inc edi
cmp byte [esi + 9], 0
mov dword [esp + 0x24], edi
je 0x50b512
inc dword [esi + 0xc]
cmp byte [esi + 0xa], 0
jne 0x50b512
mov edi, esi
call fcn.004b2140
mov edi, dword [esp + 0x24]
mov eax, dword [ebp + 0xc]
mov ebp, dword [eax + 0x48]
test byte [ebp + 0x1c], 4
mov edx, dword [eax + 0x38]
mov eax, dword [ebp + 0x14]
mov dword [esp + 0x24], edx
je 0x50b554
mov ecx, dword [eax + 0x18]
cmp ecx, dword [ebp + 0x18]
jb 0x50b554
cmp dword [eax + 0x60], 0
je 0x50b550
mov ecx, ebp
call fcn.004b0410
test eax, eax
je 0x50b54c
push ebp
call fcn.004c42b0
add esp, 4
jmp 0x50b57f
xor eax, eax
jmp 0x50b57f
xor ebp, ebp
jmp 0x50b585
mov ecx, dword [eax + 0x28]
test ecx, ecx
je 0x50b55f
mov ebp, ecx
jmp 0x50b581
mov edx, dword [eax + 0x94]
cmp edx, dword [eax + 0x98]
jbe 0x50b578
push ebp
call fcn.004c45a0
add esp, 4
jmp 0x50b57f
mov eax, ebp
call fcn.004c44e0
mov ebp, eax
test ebp, ebp
jne 0x50b58e
mov eax, dword [esp + 0x24]
bswap edi
mov dword [eax + 0x28], edi
cmp byte [esi + 9], 0
je 0x50b59f
add dword [esi + 0xc], 0xffffffff
jne 0x50b59f
call fcn.004b2120
test ebp, ebp
jne 0x50ba4d
mov eax, dword [ebx]
test eax, eax
je 0x50b5b2
call fcn.004d8010
cmp dword [esp + 0x34], 5
jne 0x50b5d0
mov eax, dword [ebx + 4]
push 2
call fcn.005056c0
mov ebp, eax
add esp, 4
test ebp, ebp
jne 0x50ba4d
mov edi, dword [esp + 0x1c]
mov ecx, dword [esp + 0x18]
cmp edi, ecx
jge 0x50b60c
mov eax, ecx
cdq
idiv edi
mov edx, dword [esp + 0x10]
mov ecx, eax
lea eax, [ecx + edx - 1]
cdq
idiv ecx
xor edx, edx
mov esi, eax
mov eax, dword [ebx + 4]
mov ecx, dword [eax + 4]
mov eax, dword [0x633dc8]
div dword [ecx + 0x20]
mov ecx, dword [esp + 0x18]
inc eax
cmp esi, eax
jne 0x50b618
dec esi
jmp 0x50b618
mov eax, edi
cdq
idiv ecx
mov esi, eax
imul esi, dword [esp + 0x10]
cmp edi, ecx
jge 0x50b89d
mov eax, dword [esp + 0x1c]
cdq
mov ecx, eax
mov eax, dword [esp + 0x10]
mov edi, edx
push edi
cdq
push ecx
push edx
push eax
mov dword [esp + 0x54], ecx
mov dword [esp + 0x58], edi
call fcn.00588dd0
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0x14]
mov dword [esp + 0x40], edx
mov edx, dword [eax + 0x3c]
mov eax, dword [eax + 0x18]
mov dword [esp + 0x10], edx
mov dword [esp + 0x34], eax
mov edi, esi
jmp 0x50b660
cmp edi, dword [esp + 0x34]
ja 0x50b6b8
mov ecx, dword [ebx + 4]
mov ecx, dword [ecx + 4]
mov eax, dword [0x633dc8]
xor edx, edx
div dword [ecx + 0x20]
inc eax
cmp edi, eax
je 0x50b6b1
mov eax, dword [esp + 0x14]
push 0
lea edx, [esp + 0x28]
push edx
push edi
push eax
mov eax, dword [eax + 0xcc]
call eax
mov ebp, eax
add esp, 0x10
test ebp, ebp
jne 0x50b6b1
mov esi, dword [esp + 0x24]
call fcn.004c47c0
mov ebp, eax
mov eax, dword [esp + 0x24]
test eax, eax
je 0x50b6b1
call fcn.004b1190
inc edi
test ebp, ebp
je 0x50b660
jmp 0x50b6cd
test ebp, ebp
jne 0x50b6cd
mov eax, dword [esp + 0x14]
push 1
push ebp
call fcn.004f8bb0
add esp, 8
mov ebp, eax
mov ecx, dword [esp + 0x18]
mov edx, dword [0x633dc8]
lea eax, [edx + ecx]
mov ecx, dword [esp + 0x40]
cdq
cmp edx, ecx
jg 0x50b6f1
jl 0x50b6eb
cmp eax, dword [esp + 0x3c]
jae 0x50b6f1
mov dword [esp + 0x38], edx
jmp 0x50b6f9
mov eax, dword [esp + 0x3c]
mov dword [esp + 0x38], ecx
mov edx, dword [esp + 0x1c]
mov ecx, dword [0x633dc8]
mov dword [esp + 0x34], eax
lea eax, [ecx + edx]
cdq
mov esi, edx
mov edi, eax
mov dword [esp + 0x28], esi
test ebp, ebp
jne 0x50ba4d
jmp 0x50b720
cmp esi, dword [esp + 0x38]
jg 0x50b804
jl 0x50b736
cmp edi, dword [esp + 0x34]
jae 0x50b804
mov ecx, dword [esp + 0x48]
mov edx, dword [esp + 0x44]
push 0
lea eax, [esp + 0x24]
push eax
push ecx
push edx
push esi
push edi
mov dword [esp + 0x38], 0
call fcn.005897d0
inc eax
push eax
mov eax, dword [esp + 0x38]
push eax
mov eax, dword [eax + 0xcc]
call eax
mov ebp, eax
add esp, 0x10
test ebp, ebp
jne 0x50b78e
mov ecx, dword [esp + 0x20]
mov eax, dword [ecx + 4]
mov ecx, dword [esp + 0x10]
mov ebp, dword [esp + 0x1c]
mov edx, dword [ecx]
push esi
push edi
push ebp
push eax
mov eax, dword [edx + 0xc]
push ecx
call eax
add esp, 0x14
mov ebp, eax
mov eax, dword [esp + 0x20]
mov ecx, eax
test eax, eax
je 0x50b7eb
test byte [eax + 0x1c], 0x20
je 0x50b7e6
mov eax, dword [eax + 0x14]
dec dword [eax + 0x78]
mov edx, dword [eax + 0x88]
mov dword [ecx + 0x10], edx
mov esi, dword [eax + 0x3c]
mov dword [eax + 0x88], ecx
mov edx, dword [ecx + 4]
mov eax, dword [eax + 0x98]
mov ecx, dword [ecx + 0x18]
mov ebx, dword [esi]
push edx
cdq
push edx
push eax
dec ecx
push 0
push ecx
call fcn.00588dd0
push edx
mov edx, dword [ebx + 0x48]
push eax
push esi
call edx
mov esi, dword [esp + 0x38]
mov ebx, dword [esp + 0x60]
add esp, 0x10
jmp 0x50b7eb
call fcn.004af3e0
add edi, dword [esp + 0x44]
adc esi, dword [esp + 0x48]
mov dword [esp + 0x28], esi
test ebp, ebp
je 0x50b720
jmp 0x50ba4d
test ebp, ebp
jne 0x50ba4d
mov esi, dword [esp + 0x10]
mov eax, dword [esi]
mov edx, dword [eax + 0x18]
lea ecx, [esp + 0x44]
push ecx
push esi
call edx
add esp, 8
test eax, eax
jne 0x50b84d
mov edx, dword [esp + 0x48]
mov ecx, dword [esp + 0x40]
cmp edx, ecx
jl 0x50b84d
jg 0x50b83c
mov edx, dword [esp + 0x44]
cmp edx, dword [esp + 0x3c]
jbe 0x50b84d
mov eax, dword [esi]
mov edx, dword [eax + 0x10]
push ecx
mov ecx, dword [esp + 0x40]
push ecx
push esi
call edx
add esp, 0xc
mov ebp, eax
test eax, eax
jne 0x50ba4d
mov esi, dword [esp + 0x14]
mov eax, dword [esi + 0x3c]
mov ecx, dword [eax]
test ecx, ecx
je 0x50b875
push ebp
push 0x15
push eax
mov eax, dword [ecx + 0x28]
call eax
add esp, 0xc
cmp eax, 0xc
jne 0x50b879
xor eax, eax
jmp 0x50b87d
test eax, eax
jne 0x50b8b0
cmp byte [esi + 7], 0
jne 0x50b8b0
movzx eax, byte [esi + 0xa]
mov ecx, dword [esi + 0x3c]
test eax, eax
je 0x50b899
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 0x14]
push ecx
call eax
jmp 0x50b8ad
xor eax, eax
jmp 0x50b8b0
mov eax, dword [esp + 0x14]
push 0
push 0
mov dword [eax + 0x18], esi
call fcn.004f8bb0
add esp, 8
mov ebp, eax
test ebp, ebp
jne 0x50ba4d
mov esi, dword [ebx + 4]
cmp byte [esi + 8], al
je 0x50ba48
cmp byte [esi + 9], al
je 0x50b8da
inc dword [esi + 0xc]
cmp byte [esi + 0xa], al
jne 0x50b8da
mov edi, esi
call fcn.004b2140
cmp byte [esi + 8], 2
jne 0x50ba30
mov edi, dword [esi + 4]
mov ebp, dword [edi]
mov eax, dword [ebp + 0x28]
mov dword [esp + 0x34], edi
test eax, eax
jne 0x50b9fe
cmp byte [ebp + 0x10], 2
jne 0x50b9a6
cmp byte [ebp + 4], al
je 0x50b9a6
cmp byte [ebp + 5], 1
jne 0x50b9a6
mov byte [ebp + 0x10], 1
dec dword [esi + 0x14]
mov ebp, dword [edi + 0x3c]
mov byte [edi + 0x14], 1
test ebp, ebp
je 0x50ba25
cmp dword [ebp + 8], 0
je 0x50b953
lea edi, [ebp + 0xc]
mov ebx, 0x7d
lea esp, [esp]
mov edx, dword [edi]
push edx
call fcn.004af120
add esp, 4
add edi, 4
sub ebx, 1
jne 0x50b940
cmp dword [0x633cb0], 0
je 0x50ba1b
mov eax, dword [0x641778]
test eax, eax
je 0x50b973
push eax
call dword [0x633d0c]
add esp, 4
push ebp
call dword [0x633ce8]
sub dword [0x641718], eax
dec dword [0x64173c]
push ebp
call dword [0x633ce0]
mov eax, dword [0x641778]
add esp, 8
test eax, eax
je 0x50ba25
push eax
call dword [0x633d14]
jmp 0x50ba22
movzx ecx, byte [ebp + 0x13]
inc dword [ebp + 0x64]
push 1
push ecx
push ebp
call fcn.004bd9c0
mov ecx, eax
and ecx, 0xff
add esp, 0xc
cmp ecx, 0xd
je 0x50b9cb
cmp ecx, 0xa
jne 0x50b9fe
mov dword [ebp + 0x28], eax
mov byte [ebp + 0x10], 6
test eax, eax
je 0x50b9e2
mov dword [ebp + 0xcc], 0x4b1100
jmp 0x50b9fe
cmp byte [ebp + 0x16], 0
je 0x50b9f4
mov dword [ebp + 0xcc], 0x4f8a10
jmp 0x50b9fe
mov dword [ebp + 0xcc], fcn.004f8830
mov ebp, eax
test ebp, ebp
je 0x50b919
cmp byte [esi + 9], 0
je 0x50ba4d
add dword [esi + 0xc], 0xffffffff
jne 0x50ba4d
call fcn.004b2120
jmp 0x50ba4d
push ebp
call dword [0x633ce0]
add esp, 4
mov eax, dword [esp + 0x34]
mov dword [eax + 0x3c], 0
mov edi, esi
call fcn.004c4dd0
cmp byte [esi + 9], 0
je 0x50ba48
add dword [esi + 0xc], 0xffffffff
jne 0x50ba48
call fcn.004b2120
mov ebp, 0x65
cmp dword [esp + 0x30], 0
je 0x50bc22
mov ecx, dword [esp + 0x50]
mov esi, dword [ecx + 0x18]
cmp byte [esi + 8], 2
jne 0x50babc
cmp byte [esi + 9], 0
mov ebx, dword [esi + 4]
je 0x50ba7e
inc dword [esi + 0xc]
cmp byte [esi + 0xa], 0
jne 0x50ba7e
mov edi, esi
call fcn.004b2140
cmp byte [ebx + 0x11], 0
je 0x50ba8f
mov edi, ebx
call fcn.0050ad70
test eax, eax
jne 0x50baab
cmp byte [ebx + 0x13], 0
je 0x50ba9d
mov edx, dword [ebx]
mov eax, dword [ebx + 0x2c]
mov dword [edx + 0x18], eax
mov eax, dword [ebx]
push 0
push 0
call fcn.004f8bb0
add esp, 8
cmp byte [esi + 9], 0
je 0x50babc
add dword [esi + 0xc], 0xffffffff
jne 0x50babc
call fcn.004b2120
mov ecx, dword [esp + 0x50]
mov edi, dword [ecx + 0x18]
cmp byte [edi + 8], 0
je 0x50bc22
cmp byte [edi + 9], 0
je 0x50bae1
inc dword [edi + 0xc]
cmp byte [edi + 0xa], 0
jne 0x50bae1
call fcn.004b2140
cmp byte [edi + 8], 2
jne 0x50bc0a
mov ebx, dword [edi + 4]
mov esi, dword [ebx]
mov eax, dword [esi + 0x28]
mov dword [esp + 0x34], ebx
test eax, eax
jne 0x50bc0f
cmp byte [esi + 0x10], 2
jne 0x50bb16
cmp byte [esi + 4], al
je 0x50bb16
cmp byte [esi + 5], 1
jne 0x50bb16
mov byte [esi + 0x10], 1
jmp 0x50bb76
movzx edx, byte [esi + 0x13]
inc dword [esi + 0x64]
push 1
push edx
push esi
call fcn.004bd9c0
mov ecx, eax
and ecx, 0xff
add esp, 0xc
cmp ecx, 0xd
je 0x50bb3b
cmp ecx, 0xa
jne 0x50bb6e
mov dword [esi + 0x28], eax
mov byte [esi + 0x10], 6
test eax, eax
je 0x50bb52
mov dword [esi + 0xcc], 0x4b1100
jmp 0x50bb6e
cmp byte [esi + 0x16], 0
je 0x50bb64
mov dword [esi + 0xcc], 0x4f8a10
jmp 0x50bb6e
mov dword [esi + 0xcc], fcn.004f8830
test eax, eax
jne 0x50bc0f
dec dword [edi + 0x14]
mov esi, dword [ebx + 0x3c]
mov byte [ebx + 0x14], 1
test esi, esi
je 0x50bbff
cmp dword [esi + 8], 0
je 0x50bbaa
lea ebx, [esi + 0xc]
mov dword [esp + 0x30], 0x7d
mov eax, dword [ebx]
push eax
call fcn.004af120
add esp, 4
add ebx, 4
sub dword [esp + 0x30], 1
jne 0x50bb95
cmp dword [0x633cb0], 0
je 0x50bbf5
mov eax, dword [0x641778]
test eax, eax
je 0x50bbc6
push eax
call dword [0x633d0c]
add esp, 4
push esi
call dword [0x633ce8]
sub dword [0x641718], eax
dec dword [0x64173c]
push esi
call dword [0x633ce0]
mov eax, dword [0x641778]
add esp, 8
test eax, eax
je 0x50bbff
push eax
call dword [0x633d14]
jmp 0x50bbfc
push esi
call dword [0x633ce0]
add esp, 4
mov ecx, dword [esp + 0x34]
mov dword [ecx + 0x3c], 0
call fcn.004c4dd0
cmp byte [edi + 9], 0
je 0x50bc22
add dword [edi + 0xc], 0xffffffff
jne 0x50bc22
mov esi, edi
call fcn.004b2120
cmp ebp, 0xc0a
jne 0x50bc2f
mov ebp, 7
mov edx, dword [esp + 0x50]
mov dword [edx + 0x1c], ebp
mov ebx, edx
mov eax, dword [ebx]
pop edi
test eax, eax
je 0x50bc50
mov eax, dword [eax + 0xc]
test eax, eax
je 0x50bc50
push eax
call dword [0x633d14]
add esp, 4
mov esi, dword [ebx + 0x18]
cmp byte [esi + 9], 0
je 0x50bc64
add dword [esi + 0xc], 0xffffffff
jne 0x50bc64
call fcn.004b2120
mov eax, dword [ebx + 0x14]
mov eax, dword [eax + 0xc]
test eax, eax
je 0x50bc78
push eax
call dword [0x633d14]
add esp, 4
pop esi
mov eax, ebp
pop ebp
pop ebx
add esp, 0x3c
ret