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

Disassembly:
mov al, byte [esp + 4]
sub esp, 0x48
push ebx
push esi
mov byte [ecx + 0x140], al
push edi
push ebp
mov esi, ecx
mov cl, byte [esp + 0x60]
cmp al, 0xa
mov byte [esi + 0x141], cl
jne 0x50b06a
xor edx, edx
mov eax, dword [esi + 0xf8]
cmp eax, edx
je 0x50b06a
mov eax, dword [esi + 0x104]
cmp word [eax + 0x8d90], dx
jle 0x50b06a
xor ecx, ecx
movsx edi, dx
lea ebx, [edi + edi*4]
inc dx
mov eax, edi
lea edi, [ebx + ebx*4]
lea ebp, [eax + edi*2]
mov eax, dword [esi + 0x104]
mov byte [eax + ebp*8 + 0xd1], cl
mov eax, dword [esi + 0x104]
cmp word [eax + 0x8d90], dx
jg 0x50b03e
lea eax, [esp + 0x54]
lea ecx, [esp + 0x3c]
push eax
push ecx
mov ecx, dword [esi + 0x100]
add ecx, 0x58
call fcn.00467150
mov byte [esp + 0x13], 0x32
mov al, byte [esi + 0x140]
cmp al, 0x28
je 0x50b0a5
cmp al, 0x3c
je 0x50b0a9
cmp al, 0x29
je 0x50b0a5
cmp al, 0x2a
je 0x50b0a5
cmp al, 0x2b
je 0x50b0a5
cmp al, 0x2c
jne 0x50b122
cmp al, 0x3c
jne 0x50b0c9
mov ecx, dword [esp + 0x70]
fld dword [ecx]
call fcn.005351bc
mov word [esp + 0x14], ax
mov ecx, dword [esp + 0x74]
fld dword [ecx]
call fcn.005351bc
mov word [esp + 0x16], ax
mov ecx, dword [esp + 0x70]
mov eax, dword [esp + 0x74]
mov edx, dword [esp + 0x78]
nop
mov dword [ecx], 0
mov ecx, dword [esp + 0x7c]
mov dword [eax], 0
mov word [edx], 0
mov word [ecx], 0
mov al, byte [esi + 0x140]
cmp al, 0x29
je 0x50b106
cmp al, 0x2a
je 0x50b106
cmp al, 0x2b
je 0x50b106
cmp al, 0x2c
jne 0x50b110
mov eax, dword [esp + 0x6c]
mov ecx, dword [eax]
mov dword [esp + 0x38], ecx
mov eax, dword [esp + 0x6c]
mov dword [esp + 0x34], 0
mov dword [eax], 0
mov al, byte [esi + 0x140]
cmp al, 0xe
jne 0x50b159
lea eax, [esp + 0x50]
push 1
lea ecx, [esp + 0x4c]
push eax
lea edx, [esp + 0x54]
push ecx
lea eax, [esp + 0x50]
push edx
push eax
mov ecx, esi
call fcn.00509530
test eax, eax
jne 0x50b159
xor eax, eax
pop ebp
pop edi
pop esi
pop ebx
add esp, 0x48
ret 0x24
mov ax, word [esi + 0x126]
mov cx, word [esi + 0x128]
mov dx, word [esi + 0x12a]
mov word [esp + 0x26], ax
mov ax, word [esi + 0x12c]
mov word [esp + 0x2a], cx
mov cx, word [esi + 0x118]
mov word [esp + 0x20], dx
lea edx, [ecx*2 + 0xc]
mov byte [esp + 0x12], 4
mov word [esp + 0x1c], 0
mov word [esp + 0x22], ax
mov ax, word [esi + 0x116]
add ax, 4
mov word [esp + 0x1a], ax
mov word [esp + 0x1e], dx
mov word [esp + 0x24], ax
test dx, dx
jle 0x50ba13
mov word [esp + 0x18], 0
mov bp, word [esp + 0x26]
cmp word [esp + 0x24], 0
mov ax, word [esp + 0x20]
mov cx, word [esp + 0x22]
mov word [esp + 0x2c], ax
mov word [esp + 0x2e], cx
jle 0x50b968
cmp word [esp + 0x2c], 0
jl 0x50b226
mov ecx, dword [esi + 0x104]
movsx eax, word [esp + 0x2c]
cmp dword [ecx + 8], eax
jle 0x50b226
cmp word [esp + 0x2e], 0
jl 0x50b226
movsx eax, word [esp + 0x2e]
cmp dword [ecx + 0xc], eax
jle 0x50b226
mov dword [esp + 0x30], 1
jmp 0x50b22e
mov dword [esp + 0x30], 0
mov eax, dword [esp + 0x30]
test eax, eax
jne 0x50b254
mov al, byte [esi + 0x140]
cmp al, 0x28
je 0x50b248
cmp al, 0x2a
jne 0x50b942
mov eax, dword [esp + 0x30]
test eax, eax
je 0x50b2dc
mov eax, dword [esi + 0x100]
mov ecx, dword [eax + 0x38]
test ecx, ecx
je 0x50b296
mov eax, dword [esi + 0x104]
mov dl, byte [eax + 0x8db8]
test dl, dl
jne 0x50b296
movsx edi, word [esp + 0x2c]
movsx eax, word [esp + 0x2e]
push eax
push edi
call fcn.00411a00
mov bl, al
mov al, byte [esi + 0x140]
cmp al, 0x1e
je 0x50b292
cmp al, 0x1f
jne 0x50b2af
mov bl, 0xf
jmp 0x50b2af
movsx edi, word [esp + 0x2c]
movsx eax, word [esp + 0x2e]
push eax
push edi
call fcn.00411a00
mov bl, al
test bl, bl
jne 0x50b2af
mov bl, pe_nt_image_headers32
mov al, byte [esi + 0x140]
cmp al, 0xb
jne 0x50b2de
mov eax, dword [esi + 0x104]
movsx ecx, word [esp + 0x2e]
mov edx, dword [eax + 0x8d8c]
lea eax, [edi + edi*2]
mov ecx, dword [edx + ecx*4]
mov dl, byte [ecx + eax*8 + 7]
lea ecx, [ecx + eax*8]
cmp byte [ecx + 9], dl
jne 0x50b2de
xor bl, bl
cmp bl, 0xf
je 0x50b2ea
cmp bl, 0x80
je 0x50b2ea
xor bl, bl
test bl, bl
jne 0x50b308
mov al, byte [esi + 0x140]
cmp al, 0xe
je 0x50b308
cmp al, 0x28
je 0x50b308
cmp al, 0x3c
je 0x50b308
cmp al, 0x2a
jne 0x50b942
mov eax, dword [esp + 0x30]
test eax, eax
jne 0x50b318
xor edi, edi
xor cl, cl
xor al, al
jmp 0x50b341
movsx ecx, word [esp + 0x2c]
mov eax, dword [esi + 0x104]
lea ecx, [ecx + ecx*2]
movsx edx, word [esp + 0x2e]
mov edi, dword [eax + 0x8d8c]
mov edx, dword [edi + edx*4]
mov al, byte [edx + ecx*8 + 5]
lea edi, [edx + ecx*8]
shr al, 5
mov cl, byte [edi + 4]
mov dx, word [esp + 0x2a]
and eax, 0xffff00ff
imul ax, word [esi + 0x110]
sub dx, ax
xor eax, eax
mov word [esp + 0x28], dx
mov al, cl
lea edx, [eax - 2]
cmp edx, 0xe
ja case.0x50b36f.7
xor ecx, ecx
mov cl, byte [edx + 0x50bac4]
jmp dword [ecx*4 + 0x50baac]
mov cx, word [esi + 0x110]
sub word [esp + 0x28], cx
movsx ecx, bp
cmp dword [esi + 0x94], ecx
jl 0x50b408
movsx edx, word [esp + 0x28]
mov dword [esp + 0x30], edx
cmp dword [esi + 0x98], edx
jl 0x50b408
lea eax, [eax + eax*2]
mov edx, dword [esi + 0x104]
lea eax, [edx + eax*2]
movsx edx, word [eax + 0x18]
add edx, ecx
mov ecx, dword [esi + 0x8c]
cmp edx, ecx
jle 0x50b408
mov ecx, dword [esp + 0x30]
mov edx, dword [esi + 0x90]
movsx eax, word [eax + 0x1a]
add eax, ecx
cmp eax, edx
jle 0x50b408
mov al, byte [esi + 0x140]
cmp al, 0xe
jne 0x50b3fe
movsx eax, word [esp + 0x2c]
cmp eax, dword [esp + 0x44]
jl 0x50b408
mov ecx, dword [esp + 0x48]
cmp eax, ecx
jg 0x50b408
movsx eax, word [esp + 0x2e]
cmp eax, dword [esp + 0x4c]
jl 0x50b408
mov ecx, dword [esp + 0x50]
cmp ecx, eax
jl 0x50b408
mov dword [esp + 0x40], 0
jmp 0x50b410
mov dword [esp + 0x40], 1
mov cl, byte [esi + 0x140]
cmp cl, 0xa
je 0x50b6a1
cmp cl, 0x1e
je 0x50b6a1
cmp cl, 0x1f
je 0x50b6a1
cmp cl, 0x20
je 0x50b6a1
cmp cl, 0x15
je 0x50b6a1
cmp cl, 0xb
je 0x50b6a1
cmp cl, 0xe
je 0x50b6a1
cmp bl, 0xf
je 0x50b463
cmp bl, 0x80
jne 0x50b545
cmp cl, 0x29
je 0x50b47b
cmp cl, 0x2a
je 0x50b47b
cmp cl, 0x2b
je 0x50b47b
cmp cl, 0x2c
jne 0x50b545
cmp bl, 0xf
je 0x50b499
cmp bl, 0x80
jne 0x50b495
mov eax, dword [esi + 0x104]
mov cl, byte [eax + 0x8db9]
test cl, cl
je 0x50b499
mov al, 1
jmp 0x50b49b
xor al, al
mov ecx, dword [esp + 0x38]
push eax
mov eax, dword [esp + 0x80]
push ecx
mov edx, dword [esp + 0x80]
push eax
mov ecx, dword [esp + 0x74]
push edx
mov eax, dword [esp + 0x74]
push ecx
mov edx, dword [esp + 0x42]
push eax
mov ecx, dword [esp + 0x44]
push edx
mov eax, dword [esp + 0x46]
push ecx
push eax
mov ecx, esi
push ebp
push edi
call fcn.0050ecb0
test eax, eax
je 0x50b545
mov cl, byte [esi + 0x140]
cmp cl, 0x2c
je 0x50b540
mov ecx, dword [esp + 0x38]
test ecx, ecx
je 0x50b4fb
cmp ecx, eax
jne 0x50b4fb
mov cl, byte [esp + 0x13]
cmp cl, 0x34
je 0x50ba91
mov ecx, dword [esp + 0x34]
test ecx, ecx
je 0x50b529
mov edx, dword [ecx + 8]
mov ebx, dword [eax + 8]
mov cl, byte [ebx + 0x8d]
mov bl, byte [edx + 0x8d]
cmp bl, cl
jbe 0x50b529
mov ecx, dword [esp + 0x38]
mov edx, dword [esp + 0x34]
cmp edx, ecx
jne 0x50b545
cmp ecx, eax
je 0x50b545
mov edx, dword [eax + 0x38]
mov ecx, dword [esp + 0x70]
mov dword [esp + 0x34], eax
nop
mov dword [ecx], edx
mov edx, dword [esp + 0x74]
mov ebx, dword [eax + 0x3c]
mov dword [edx], ebx
mov byte [esp + 0x13], 0x34
mov al, byte [esi + 0x140]
cmp al, 0x28
je 0x50b5d6
cmp al, 0x2a
jne 0x50b560
mov cl, byte [esp + 0x13]
cmp cl, 0x32
je 0x50b5d6
cmp al, 0x3c
jne 0x50b942
mov ax, word [esp + 0x2c]
cmp word [esp + 0x14], ax
jne 0x50b942
mov ax, word [esp + 0x2e]
cmp word [esp + 0x16], ax
jne 0x50b942
movsx eax, word [esp + 0x2c]
movsx edx, word [esp + 0x2e]
mov ecx, dword [esp + 0x70]
mov dword [esp + 0x3c], eax
fild dword [esp + 0x3c]
mov eax, dword [esp + 0x74]
fstp dword [ecx]
mov ecx, dword [esp + 0x78]
mov dword [esp + 0x3c], edx
fild dword [esp + 0x3c]
mov edx, dword [esp + 0x7c]
fstp dword [eax]
mov ax, word [esp + 0x28]
mov word [ecx], bp
mov ecx, dword [esp + 0x6c]
mov word [edx], ax
pop ebp
mov eax, 0x33
mov dword [ecx], edi
pop edi
pop esi
pop ebx
add esp, 0x48
ret 0x24
mov eax, dword [esp + 0x64]
mov ecx, dword [esp + 0x2e]
mov edx, dword [esp + 0x2c]
push eax
mov eax, dword [esp + 0x2c]
push ecx
push edx
mov ecx, esi
push eax
push ebp
push edi
call fcn.0050eb50
test eax, eax
je 0x50b942
test edi, edi
je 0x50b656
mov ecx, dword [esp + 0x74]
mov eax, dword [esp + 0x70]
mov edx, dword [esp + 0x64]
push ecx
push eax
mov ecx, dword [esi + 0x104]
push edi
mov eax, dword [edx + 4]
sub ax, word [esp + 0x34]
push eax
mov eax, dword [edx]
sub ax, bp
push eax
call fcn.0042ef70
movsx ecx, word [esp + 0x2c]
movsx eax, word [esp + 0x2e]
mov edx, dword [esp + 0x70]
mov dword [esp + 0x30], ecx
fild dword [esp + 0x30]
mov ecx, dword [esp + 0x74]
mov dword [esp + 0x30], eax
fild dword [esp + 0x30]
fxch st(1)
fadd dword [edx]
fstp dword [edx]
fadd dword [ecx]
fstp dword [ecx]
jmp 0x50b67e
movsx eax, word [esp + 0x2c]
movsx edx, word [esp + 0x2e]
mov ecx, dword [esp + 0x70]
mov dword [esp + 0x30], eax
fild dword [esp + 0x30]
mov eax, dword [esp + 0x74]
mov dword [esp + 0x30], edx
fild dword [esp + 0x30]
fxch st(1)
fstp dword [ecx]
fstp dword [eax]
mov cx, word [esp + 0x28]
mov eax, dword [esp + 0x78]
mov word [eax], bp
mov edx, dword [esp + 0x7c]
mov word [edx], cx
mov eax, dword [esp + 0x6c]
mov byte [esp + 0x13], 0x33
mov dword [eax], edi
jmp 0x50b942
mov eax, dword [esp + 0x40]
test eax, eax
jne 0x50b74c
cmp cl, 0xa
je 0x50b6c0
cmp cl, 0xb
je 0x50b6c0
cmp cl, 0xe
jne 0x50b74c
mov al, byte [edi + 5]
and al, 0x1f
mov byte [esp + 0x28], al
xor eax, eax
mov al, byte [esp + 0x28]
mov dword [esp + 0x30], eax
lea edx, [eax + eax*4]
lea eax, [edx + edx*4]
mov edx, dword [esp + 0x30]
lea eax, [edx + eax*2]
mov edx, dword [esi + 0x104]
mov ax, word [edx + eax*8 + 0x144]
cmp ax, 0xffff
je 0x50b6f8
mov byte [esp + 0x28], al
cmp cl, 0xa
jne 0x50b73c
mov eax, dword [esi + 0xf8]
test eax, eax
je 0x50b73c
mov eax, dword [esp + 0x40]
test eax, eax
jne 0x50b73c
xor eax, eax
mov edx, dword [esi + 0x104]
movsx ecx, word [edx + 0x8d90]
mov al, byte [esp + 0x28]
cmp ecx, eax
jle 0x50b73c
lea ecx, [eax + eax*4]
lea edx, [ecx + ecx*4]
mov ecx, dword [esi + 0x104]
lea eax, [eax + edx*2]
inc byte [ecx + eax*8 + 0xd1]
mov al, byte [esi + 0x140]
cmp al, 0xb
jne 0x50b74c
mov al, byte [edi + 9]
mov byte [edi + 7], al
cmp bl, 0xf
je 0x50b75a
cmp bl, 0x80
jne 0x50b942
mov al, byte [esi + 0x140]
cmp al, 0x1e
je 0x50b774
cmp al, 0x1f
je 0x50b774
cmp al, 0x20
je 0x50b774
cmp al, 0x15
jne 0x50b942
cmp bl, 0xf
je 0x50b795
cmp bl, 0x80
jne 0x50b78e
mov ecx, dword [esi + 0x104]
mov dl, byte [ecx + 0x8db9]
test dl, dl
je 0x50b795
mov byte [esp + 0x30], 1
jmp 0x50b79a
mov byte [esp + 0x30], 0
cmp al, 0x1e
jne 0x50b824
mov eax, dword [esi + 0x17c]
mov ecx, dword [esi + 0xf4]
mov edx, dword [esp + 0x30]
push edx
mov dword [ecx + 0xd0], eax
mov eax, dword [esp + 0x2e]
push 1
mov dword [0x564400], 1
push eax
mov ecx, dword [esi + 0xf4]
push ebp
push ecx
lea ecx, [edi + 0xc]
call fcn.0052eba0
mov edx, dword [esi + 0x178]
mov ecx, dword [esi + 0xf4]
mov eax, dword [esp + 0x30]
push eax
mov dword [ecx + 0xd0], edx
mov edx, dword [esp + 0x2e]
push 1
mov dword [0x564400], 0
push edx
mov ecx, dword [esi + 0xf4]
push ebp
push ecx
lea ecx, [edi + 0xc]
call fcn.0052eba0
mov eax, dword [esi + 0xf4]
mov ecx, dword [eax + 0xcc]
mov dword [eax + 0xd0], ecx
mov al, byte [esi + 0x140]
cmp al, 0x1f
jne 0x50b8b4
mov eax, dword [esi + 0x17c]
mov ecx, dword [esi + 0xf4]
mov edx, dword [esp + 0x30]
push edx
mov dword [ecx + 0xd0], eax
mov eax, dword [esp + 0x2e]
push 0xa
mov dword [0x564400], 1
push eax
mov ecx, dword [esi + 0xf4]
push ebp
push ecx
lea ecx, [edi + 0xc]
call fcn.0052eba0
mov edx, dword [esi + 0x178]
mov ecx, dword [esi + 0xf4]
mov eax, dword [esp + 0x30]
push eax
mov dword [ecx + 0xd0], edx
mov edx, dword [esp + 0x2e]
push 0xa
mov dword [0x564400], 0
push edx
mov ecx, dword [esi + 0xf4]
push ebp
push ecx
lea ecx, [edi + 0xc]
call fcn.0052eba0
mov eax, dword [esi + 0xf4]
mov ecx, dword [eax + 0xcc]
mov dword [eax + 0xd0], ecx
mov al, byte [esi + 0x140]
cmp al, 0x20
jne 0x50b8fb
mov eax, dword [esi + 0x104]
mov cl, byte [eax + 0x8db9]
test cl, cl
je 0x50b8dd
cmp bl, 0x80
jne 0x50b8dd
mov dword [0x564400], 1
mov eax, dword [esp + 0x30]
mov ecx, dword [esp + 0x2a]
push eax
mov edx, dword [esi + 0xf4]
push 0
push ecx
push ebp
lea ecx, [edi + 0xc]
push edx
call fcn.0052eba0
jmp 0x50b938
cmp al, 0x15
jne 0x50b942
mov eax, dword [esi + 0x104]
mov cl, byte [eax + 0x8db9]
test cl, cl
je 0x50b91e
cmp bl, 0x80
jne 0x50b91e
mov dword [0x564400], 1
mov eax, dword [esp + 0x30]
mov ecx, dword [esp + 0x2a]
push eax
mov edx, dword [esi + 0xf4]
push ecx
push ebp
push edx
lea ecx, [edi + 0xc]
call fcn.0052ec30
mov dword [0x564400], 0
add bp, word [esi + 0x108]
inc word [esp + 0x2c]
inc word [esp + 0x18]
mov ax, word [esp + 0x18]
inc word [esp + 0x2e]
cmp ax, word [esp + 0x24]
jl 0x50b1f2
mov al, byte [esp + 0x12]
cmp al, 1
jne 0x50b981
mov ax, word [esp + 0x24]
cmp word [esp + 0x1a], ax
jne 0x50b981
mov byte [esp + 0x12], 2
xor eax, eax
mov al, byte [esp + 0x12]
dec eax
cmp eax, 3
ja case.default.0x50b98d
jmp dword [eax*4 + 0x50bad4]
mov ax, word [esi + 0x10c]
inc word [esp + 0x24]
sub word [esp + 0x26], ax
dec word [esp + 0x20]
jmp case.default.0x50b98d
mov ax, word [esi + 0x10c]
dec word [esp + 0x24]
add word [esp + 0x26], ax
inc word [esp + 0x22]
jmp case.default.0x50b98d
mov byte [esp + 0x12], 4
mov ax, word [esi + 0x10c]
sub word [esp + 0x26], ax
dec word [esp + 0x20]
jmp case.default.0x50b98d
mov byte [esp + 0x12], 3
mov ax, word [esi + 0x10c]
add word [esp + 0x26], ax
inc word [esp + 0x22]
mov ax, word [esi + 0x10e]
inc word [esp + 0x1c]
mov cx, word [esp + 0x1c]
add word [esp + 0x2a], ax
cmp word [esp + 0x1e], cx
jg 0x50b1c6
mov al, byte [esi + 0x140]
cmp al, 0xa
jne 0x50ba5d
xor dx, dx
xor ecx, ecx
mov eax, dword [esi + 0x104]
cmp word [eax + 0x8d90], cx
jle 0x50ba5d
movsx edi, dx
lea ebx, [edi + edi*4]
inc dx
mov eax, edi
lea edi, [ebx + ebx*4]
lea ebp, [eax + edi*2]
mov eax, dword [esi + 0x104]
mov byte [eax + ebp*8 + 0xd0], cl
mov eax, dword [esi + 0x104]
cmp word [eax + 0x8d90], dx
jg 0x50ba31
mov al, byte [esi + 0x140]
cmp al, 0x29
je 0x50ba6f
cmp al, 0x2a
je 0x50ba6f
cmp al, 0x2b
jne 0x50ba81
mov al, byte [esp + 0x13]
cmp al, 0x34
jne 0x50ba81
mov eax, dword [esp + 0x6c]
mov ecx, dword [esp + 0x34]
mov dword [eax], ecx
xor eax, eax
mov al, byte [esp + 0x13]
pop ebp
pop edi
pop esi
pop ebx
add esp, 0x48
ret 0x24
mov eax, dword [esp + 0x6c]
mov ecx, dword [esp + 0x34]
mov dword [eax], ecx
xor eax, eax
mov al, byte [esp + 0x13]
pop ebp
pop edi
pop esi
pop ebx
add esp, 0x48
ret 0x24