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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x1e4
push ebx
push esi
push edi
mov ebx, ecx
push 1
lea ecx, [esp + 0x2c]
mov dword [esp + 0x30], ebx
call fcn.0053b3d0
lea eax, [ebp + 8]
push eax
lea ecx, [esp + 0x14]
call fcn.00525350
lea ecx, [esp + 0x19c]
push ecx
lea ecx, [esp + 0x14]
call fcn.0053aad0
mov edx, dword [eax + 4]
mov eax, dword [eax]
push 1
push 0x10082b08
push edx
push eax
lea ecx, [esp + 0x164]
call fcn.0050ab00
mov ecx, eax
call fcn.0050ac20
test eax, eax
je 0x511224
mov ecx, dword [0x10090848]
mov edx, dword [0x1009084c]
mov eax, dword [0x10090850]
mov dword [esp + 0x80], ecx
mov cx, word [0x10090854]
mov word [esp + 0x8c], cx
lea ecx, [esp + 0x10]
mov dword [esp + 0x84], edx
mov dword [esp + 0x88], eax
call fcn.0050abc0
cmp ax, 6
jb 0x511224
push 5
lea ecx, [esp + 0x14]
call fcn.00525500
cmp ax, 0x3a
jne 0x511224
push 4
lea ecx, [esp + 0x14]
call fcn.00525500
mov ecx, dword [ebx + 8]
mov word [esp + 0x88], ax
mov edx, dword [ecx]
mov edx, dword [edx + 0x30]
lea eax, [esp + 0x1c]
push eax
call edx
mov eax, dword [esp + 0x1c]
test eax, eax
je 0x511012
mov esi, dword [eax]
mov edi, eax
lea eax, [esp + 0x80]
push eax
lea ecx, [esp + 0x180]
add esi, 0x14
call fcn.0050aae0
mov ecx, eax
call fcn.0050aab0
mov edx, dword [esi]
push eax
lea ecx, [esp + 0x24]
push ecx
mov ecx, edi
call edx
mov ecx, dword [esp + 0x20]
test ecx, ecx
je 0x511005
mov eax, dword [ecx]
mov edx, dword [eax + 0x10]
call edx
test eax, eax
je 0x511005
lea eax, [esp + 0x80]
push eax
lea ecx, [esp + 0xe0]
call fcn.005253b0
mov ecx, dword [ebp + 0x10]
push eax
call fcn.00525440
lea ecx, [esp + 0xdc]
call fcn.00525460
lea ecx, [esp + 0x10]
mov edi, 6
call fcn.0050aab0
cmp word [eax], 0xc
jne 0x510f9b
push 0x1008241c
lea ecx, [esp + 0x190]
call fcn.0050aae0
jmp 0x510fd8
lea ecx, [esp + 0x10]
call fcn.0050aab0
mov esi, dword [eax + 4]
add esi, 0xc
cmp word [esi], 0x5c
jne 0x510fb8
add esi, 2
mov edi, 7
lea ecx, [esp + 0x10]
call fcn.0050aab0
movzx eax, word [eax]
shr ax, 1
sub ax, di
lea ecx, [esp + 0x1a4]
push eax
push esi
call fcn.0050aac0
mov ecx, eax
call fcn.0050aab0
mov ecx, dword [eax + 4]
mov edx, dword [eax]
push ecx
mov ecx, dword [ebp + 0x14]
push edx
call fcn.005253e0
lea ecx, [esp + 0x20]
call fcn.004e4310
lea ecx, [esp + 0x1c]
call fcn.004e4310
jmp 0x511ddc
lea ecx, [esp + 0x20]
call fcn.004e4310
mov eax, dword [esp + 0x1c]
cmp dword [0x1018ed2c], 0
je 0x511218
push 4
lea ecx, [esp + 0x14]
call fcn.00525500
mov ecx, dword [0x1018ed64]
movzx eax, ax
movzx eax, ax
movzx edi, word [ecx + eax*2]
sub edi, 0x41
cmp edi, 0x20
jae 0x511214
mov esi, dword [0x1018efa4]
push 0
push 0x24
lea edx, [esp + 0x1d4]
push edx
push 0x17
add esi, 0xc28
call dword [0x10082210]
push eax
mov eax, dword [esi]
mov edx, dword [eax + 0x24]
mov ecx, esi
call edx
call eax
test eax, eax
jne 0x511214
mov al, byte [esp + edi + 0x1d0]
test al, al
je 0x511091
cmp al, 1
je 0x511091
cmp al, 4
jne 0x511214
lea eax, [esp + 0xe4]
push eax
lea ecx, [esp + 0xb0]
lea esi, [ebx + 0x34]
push ecx
mov ecx, esi
mov dword [esp + 0xb4], edi
call fcn.0050e6c0
test eax, eax
je 0x5110d9
mov ecx, dword [ebp + 0x10]
call fcn.00525510
mov ecx, dword [ebp + 0x14]
lea edx, [esp + 0x10]
push edx
call fcn.00525440
lea ecx, [esp + 0x1c]
call fcn.004e4310
jmp 0x511ddc
xor eax, eax
mov dword [esp + 0x6c], 1
mov dword [esp + 0x60], eax
mov dword [esp + 0x64], eax
mov dword [esp + 0x30], edi
mov dword [esp + 0xa8], edi
mov eax, dword [esp + 0x6c]
push eax
lea ecx, [esp + 0x64]
call fcn.004c4b10
lea ecx, [esp + 0x30]
push ecx
mov edx, ecx
push edx
mov ecx, esi
call fcn.0050e1c0
mov ebx, dword [esp + 0x60]
lea eax, [esp + 0x6c]
push eax
push ebx
lea ecx, [esp + 0x90]
push ecx
call dword [0x1018ed2c]
lea edx, [esp + 0xa8]
push edx
mov ecx, esi
mov edi, eax
call fcn.004cf3b0
cmp edi, 0xea
je 0x5110f6
test edi, edi
jne 0x51120b
push 0x10090838
lea ecx, [esp + 0xd4]
call fcn.004c22d0
add ebx, 2
push ebx
lea ecx, [esp + 0xd4]
call fcn.004c78a0
mov eax, dword [esp + 0xd0]
push eax
lea ecx, [esp + 0x108]
call fcn.0050aae0
mov ecx, eax
call fcn.0050aab0
mov esi, dword [ebp + 0x14]
mov ecx, dword [ebp + 0x10]
mov edx, dword [eax + 4]
mov eax, dword [eax]
push esi
push ecx
mov ecx, dword [esp + 0x34]
push edx
push eax
call fcn.00510e10
mov ecx, esi
call fcn.0050aab0
cmp word [eax], di
jbe 0x5111d1
mov ecx, esi
call fcn.0050abc0
sub ax, 1
mov ecx, esi
push eax
call fcn.00525500
cmp ax, 0x5c
je 0x5111d1
push 0x10083960
mov ecx, esi
call fcn.00525630
lea ecx, [esp + 0x10]
call fcn.0050aab0
mov ecx, dword [eax + 4]
add ecx, 0xe
push ecx
mov ecx, esi
call fcn.00525630
lea ecx, [esp + 0xd0]
call fcn.004c1ad0
lea ecx, [esp + 0x60]
call fcn.004c4ae0
lea ecx, [esp + 0x1c]
call fcn.004e4310
jmp 0x511ddc
lea ecx, [esp + 0x60]
call fcn.004c4ae0
mov eax, dword [esp + 0x1c]
test eax, eax
je 0x511224
mov edx, dword [eax]
push eax
mov eax, dword [edx + 8]
call eax
mov ebx, dword [esp + 0x2c]
add ebx, 0x10
push 0xffffffffffffffff
lea ecx, [esp + 0x4f]
mov esi, ebx
push ecx
mov ecx, esi
mov dword [esp + 0x98], ebx
mov dword [esp + 0x78], esi
call fcn.004cbac0
test al, al
je 0x511250
add dword [esi + 0x10], 1
mov al, 1
mov ecx, ebx
mov byte [esp + 0x74], al
call fcn.00539470
test eax, eax
mov dword [esp + 0x5c], eax
je 0x511310
lea edx, [esp + 0x5c]
push edx
mov ecx, ebx
call fcn.0050e630
push eax
lea ecx, [esp + 0x38]
call fcn.00525350
push 1
lea ecx, [esp + 0x14]
call fcn.0050aab0
push eax
lea ecx, [esp + 0x3c]
call fcn.0050aab0
push eax
call dword [0x1018ef60]
test eax, eax
je 0x511448
lea ecx, [esp + 0x34]
call fcn.0050aab0
push eax
lea ecx, [esp + 0x50]
call fcn.00525350
push 0x10083960
lea ecx, [esp + 0x50]
call fcn.00525630
push 1
lea ecx, [esp + 0x50]
call fcn.0050aab0
push eax
lea ecx, [esp + 0x18]
call fcn.0050aab0
push eax
lea ecx, [esp + 0x170]
call fcn.0050ab20
mov ecx, eax
call fcn.0050ab50
test eax, eax
jne 0x511474
lea ecx, [esp + 0x4c]
call fcn.00525460
lea ecx, [esp + 0x34]
call fcn.00525460
cmp dword [esp + 0x5c], 0
jne 0x511267
lea ecx, [esp + 0x70]
call fcn.0050d180
push 0x10090824
lea ecx, [esp + 0xcc]
call fcn.0050aae0
push 1
lea ecx, [esp + 0xcc]
call fcn.0050aab0
push eax
lea ecx, [esp + 0x18]
call fcn.0050aab0
push eax
lea ecx, [esp + 0x1a0]
call fcn.0050ab20
mov ecx, eax
call fcn.0050ab50
test eax, eax
je 0x5113b1
lea ecx, [esp + 0xc8]
call fcn.0050abc0
movzx edi, ax
lea ecx, [esp + 0x10]
add edi, edi
call fcn.0050aab0
mov esi, dword [eax + 4]
lea ecx, [esp + 0x10]
add esi, edi
call fcn.0050abc0
movzx edi, ax
lea ecx, [esp + 0x10]
add edi, edi
call fcn.0050aab0
mov eax, dword [eax + 4]
add eax, edi
cmp esi, eax
je 0x5113b1
lea esp, [esp]
cmp word [esi], 0x5c
je 0x5114ed
add esi, 2
cmp esi, eax
jne 0x5113a0
lea ecx, [esp + 0x10]
call fcn.0050aab0
mov edi, dword [eax + 4]
xor esi, esi
nop
cmp word [edi], 0x5c
je 0x5113db
lea ecx, [esp + 0x10]
call fcn.0050aab0
movzx edx, word [eax]
movzx ecx, si
add ecx, ecx
cmp ecx, edx
jne 0x511424
lea ecx, [esp + 0x78]
call fcn.00525340
lea eax, [esp + 0x78]
push eax
push esi
lea ecx, [esp + 0x18]
call fcn.0050aab0
mov ecx, dword [eax + 4]
push ecx
lea ecx, [esp + 0x180]
call fcn.0050aac0
mov ecx, eax
call fcn.0050aab0
push eax
call fcn.005242b0
add esp, 8
test eax, eax
lea ecx, [esp + 0x78]
je 0x511594
call fcn.00525460
lea ecx, [esp + 0x10]
call fcn.0050aab0
movzx eax, word [eax]
movzx edx, si
add edx, edx
cmp edx, eax
je 0x511600
add esi, 1
add edi, 2
jmp 0x5113c0
mov ecx, dword [ebp + 0x10]
lea eax, [esp + 0x34]
push eax
call fcn.00525440
mov ecx, dword [ebp + 0x14]
call fcn.00525510
lea ecx, [esp + 0x34]
call fcn.00525460
lea ecx, [esp + 0x70]
call fcn.0050d180
jmp 0x511ddc
lea ecx, [esp + 0x34]
push ecx
mov ecx, dword [ebp + 0x10]
call fcn.00525440
lea ecx, [esp + 0x10]
call fcn.0050aab0
mov dx, word [eax]
shr dx, 1
lea ecx, [esp + 0x4c]
movzx esi, dx
call fcn.0050abc0
movzx edi, ax
lea ecx, [esp + 0x4c]
add edi, edi
call fcn.0050abc0
sub si, ax
lea ecx, [esp + 0x10]
push esi
call fcn.0050aab0
mov eax, dword [eax + 4]
add eax, edi
push eax
lea ecx, [esp + 0x11c]
call fcn.0050aac0
mov ecx, eax
call fcn.0050aab0
mov ecx, dword [eax + 4]
mov edx, dword [eax]
push ecx
mov ecx, dword [ebp + 0x14]
push edx
call fcn.005253e0
lea ecx, [esp + 0x4c]
call fcn.00525460
jmp 0x51145d
add esi, 2
cmp esi, eax
je 0x5113b1
jmp 0x511500
movzx ecx, word [esi]
cmp cx, 0x5c
je 0x5113b1
cmp cx, 0x3a
je 0x51151f
add esi, 2
cmp esi, eax
jne 0x511500
jmp 0x5113b1
cmp esi, eax
je 0x5113b1
cmp word [esi], 0x5c
je 0x511539
add esi, 2
cmp esi, eax
jne 0x511527
jmp 0x5113b1
push 0x10090838
lea ecx, [esp + 0xb4]
call fcn.005253b0
push esi
lea ecx, [esp + 0xb4]
call fcn.00525630
lea eax, [esp + 0x124]
push eax
lea ecx, [esp + 0xb4]
call fcn.0053aad0
mov ecx, dword [ebp + 0x14]
mov edx, dword [ebp + 0x10]
push ecx
mov ecx, dword [eax + 4]
push edx
mov edx, dword [eax]
push ecx
mov ecx, dword [esp + 0x38]
push edx
call fcn.00510e10
lea ecx, [esp + 0xb0]
call fcn.00525460
jmp 0x511ddc
push ecx
lea ecx, [esp + 0xa4]
call fcn.00525350
lea ecx, [esp + 0x10]
call fcn.0050aab0
movzx edx, word [eax]
shr dx, 1
sub dx, si
lea ecx, [esp + 0x134]
push edx
push edi
call fcn.0050aac0
mov ecx, eax
call fcn.0050aab0
push eax
lea ecx, [esp + 0xa4]
call fcn.00525470
lea eax, [esp + 0xa0]
push eax
lea ecx, [esp + 0x14]
call fcn.00525440
lea ecx, [esp + 0xa0]
call fcn.00525460
lea ecx, [esp + 0x78]
call fcn.00525460
jmp 0x5113b1
mov ecx, ebx
call fcn.004c6b50
call dword [0x100820b0]
mov ecx, dword [ebx + 8]
mov esi, eax
cmp esi, ecx
lea eax, [ebx + 8]
je 0x511640
mov edx, dword [eax]
test edx, edx
jne 0x511999
push edx
push esi
push eax
call dword [0x1008208c]
test eax, eax
sete al
test al, al
je 0x511999
mov dword [ebx + 0x10], 0
add dword [ebx + 0x10], 1
mov byte [esp + 0x1b], 1
mov ecx, ebx
call fcn.004c6b50
call dword [0x100820b0]
mov esi, eax
mov eax, dword [ebx + 8]
cmp esi, eax
lea edi, [ebx + 8]
je 0x511689
mov ecx, dword [edi]
test ecx, ecx
jne 0x5119b4
push ecx
push esi
push edi
call dword [0x1008208c]
test eax, eax
sete al
test al, al
je 0x5119b4
mov dword [ebx + 0x10], 0
add dword [ebx + 0x10], 1
mov byte [esp + 0x27], 1
mov ecx, ebx
call fcn.004c6b50
call dword [0x100820b0]
mov edx, dword [edi]
mov esi, eax
cmp esi, edx
je 0x5116ce
mov eax, dword [edi]
test eax, eax
jne 0x5119cf
push eax
push esi
push edi
call dword [0x1008208c]
test eax, eax
sete al
test al, al
je 0x5119cf
mov dword [ebx + 0x10], 0
add dword [ebx + 0x10], 1
mov al, 1
test al, al
mov ecx, dword [ebx + 0x18]
mov esi, dword [0x100820c0]
mov dword [esp + 0x9c], ecx
je 0x511719
add dword [ebx + 0x10], 0xffffffff
jne 0x511719
push 0
push edi
mov dword [ebx + 0x10], 0
call dword [0x100820c4]
mov edx, dword [ebx + 0xc]
test edx, edx
lea eax, [ebx + 0xc]
jle 0x511719
push eax
call dword [0x100820a4]
mov eax, dword [ebx + 0x14]
push 0
push 1
push eax
call esi
cmp byte [esp + 0x27], 0
je 0x511751
add dword [ebx + 0x10], 0xffffffff
jne 0x511751
push 0
push edi
mov dword [ebx + 0x10], 0
call dword [0x100820c4]
mov ecx, dword [ebx + 0xc]
test ecx, ecx
lea eax, [ebx + 0xc]
jle 0x511751
push eax
call dword [0x100820a4]
mov edx, dword [ebx + 0x14]
push 0
push 1
push edx
call esi
mov eax, dword [esp + 0x9c]
test eax, eax
mov dword [esp + 0x68], eax
je 0x511823
lea eax, [esp + 0x68]
push eax
mov ecx, ebx
call fcn.0050e630
push eax
lea ecx, [esp + 0x40]
call fcn.00525350
push 1
lea ecx, [esp + 0x14]
call fcn.0050aab0
push eax
lea ecx, [esp + 0x44]
call fcn.0050aab0
push eax
call dword [0x1018ef60]
test eax, eax
lea ecx, [esp + 0x3c]
je 0x5119e6
call fcn.0050aab0
push eax
lea ecx, [esp + 0x58]
call fcn.00525350
push 0x10083960
lea ecx, [esp + 0x58]
call fcn.00525630
lea ecx, [esp + 0x1c4]
push ecx
lea ecx, [esp + 0x14]
call fcn.0053aad0
push 1
lea ecx, [esp + 0x58]
mov esi, eax
call fcn.0050aab0
mov edx, dword [esi + 4]
push eax
mov eax, dword [esi]
push edx
push eax
lea ecx, [esp + 0x154]
call fcn.0050ab00
mov ecx, eax
call fcn.0050ab50
test eax, eax
jne 0x511a50
lea ecx, [esp + 0x54]
call fcn.00525460
lea ecx, [esp + 0x3c]
call fcn.00525460
cmp dword [esp + 0x68], 0
jne 0x511764
mov esi, dword [0x100820c0]
cmp byte [esp + 0x1b], 0
je 0x51185e
add dword [ebx + 0x10], 0xffffffff
jne 0x51185e
push 0
lea eax, [ebx + 8]
push eax
mov dword [ebx + 0x10], 0
call dword [0x100820c4]
mov ecx, dword [ebx + 0xc]
test ecx, ecx
lea eax, [ebx + 0xc]
jle 0x51185e
push eax
call dword [0x100820a4]
mov edx, dword [ebx + 0x14]
push 0
push 1
push edx
call esi
push 0
push 0x40
lea ecx, [esp + 0x18]
call fcn.0050aab0
push eax
push 0
lea ecx, [esp + 0x1bc]
call fcn.0050aa80
lea ecx, [esp + 0x10]
call fcn.0050aab0
mov ax, word [eax]
shr ax, 1
movzx edi, ax
lea ecx, [esp + 0x10]
mov dword [esp + 0x20], edi
movzx ebx, di
call fcn.0050aab0
mov edx, dword [eax + 4]
movzx ecx, di
lea esi, [edx + ecx*2]
mov dword [esp + 0x1c], esi
mov dword [esp + 0x30], 0
cmp word [esi], 0x5c
je 0x5118c0
cmp bx, di
jne 0x511b98
lea ecx, [esp + 0x10]
call fcn.0050aab0
lea ecx, [ebx + ebx]
mov word [eax], cx
mov esi, dword [0x1018efa4]
push 0x21
push 3
lea ecx, [esp + 0xf4]
mov dword [esp + 0x4c], 0
add esi, 0x130
call fcn.0053ae20
mov ecx, eax
call fcn.0050aab0
push eax
lea ecx, [esp + 0x1b8]
call fcn.0050aab0
push eax
mov eax, dword [esi]
push 0x100000
lea edx, [esp + 0x58]
push edx
mov edx, dword [eax + 0x24]
mov ecx, esi
call edx
call eax
test eax, eax
jne 0x511b87
mov edi, 0x400
lea ebx, [ebx]
xor esi, esi
test edi, edi
jbe 0x511941
push edi
call fcn.004c32d0
add esp, 4
mov esi, eax
mov ecx, dword [0x1018efa4]
mov edx, dword [esp + 0x44]
lea eax, [esp + 0xe8]
push eax
mov eax, dword [ecx + 0xad8]
push edi
push esi
add ecx, 0xad8
push 1
push edx
mov edx, dword [eax + 0x24]
call edx
call eax
cmp eax, 0xc0000004
je 0x511984
cmp eax, 0x80000005
je 0x511984
cmp eax, 0xc0000023
jne 0x511b1d
add edi, 0x100
test esi, esi
je 0x511930
push esi
call fcn.004c3420
add esp, 4
jmp 0x511930
push 0xffffffffffffffff
push esi
mov ecx, ebx
call fcn.004c84e0
test al, al
jne 0x511640
mov byte [esp + 0x1b], al
jmp 0x511649
push 0xffffffffffffffff
push esi
mov ecx, ebx
call fcn.004c84e0
test al, al
jne 0x511689
mov byte [esp + 0x27], al
jmp 0x511692
push 0xffffffffffffffff
push esi
mov ecx, ebx
call fcn.004c84e0
test al, al
jne 0x5116ce
jmp 0x5116d4
push ecx
mov ecx, dword [ebp + 0x10]
call fcn.00525440
mov ecx, dword [ebp + 0x14]
call fcn.00525510
lea ecx, [esp + 0x3c]
call fcn.00525460
cmp byte [esp + 0x1b], 0
je 0x511ddc
add dword [ebx + 0x10], 0xffffffff
jne 0x511ddc
push 0
lea eax, [ebx + 8]
push eax
mov dword [ebx + 0x10], 0
call dword [0x100820c4]
mov edx, dword [ebx + 0xc]
test edx, edx
lea eax, [ebx + 0xc]
jle 0x511ddc
push eax
call dword [0x100820a4]
mov eax, dword [ebx + 0x14]
push 0
push 1
push eax
call dword [0x100820c0]
jmp 0x511ddc
lea ecx, [esp + 0x3c]
push ecx
mov ecx, dword [ebp + 0x10]
call fcn.00525440
lea ecx, [esp + 0x10]
call fcn.0050aab0
mov dx, word [eax]
shr dx, 1
lea ecx, [esp + 0x54]
movzx esi, dx
call fcn.0050abc0
movzx edi, ax
lea ecx, [esp + 0x54]
add edi, edi
call fcn.0050abc0
sub si, ax
lea ecx, [esp + 0x10]
push esi
call fcn.0050aab0
mov eax, dword [eax + 4]
add eax, edi
push eax
lea ecx, [esp + 0x18c]
call fcn.0050aac0
mov ecx, eax
call fcn.0050aab0
mov ecx, dword [eax + 4]
mov edx, dword [eax]
push ecx
mov ecx, dword [ebp + 0x14]
push edx
call fcn.005253e0
lea ecx, [esp + 0x54]
call fcn.00525460
lea ecx, [esp + 0x3c]
call fcn.00525460
cmp byte [esp + 0x1b], 0
je 0x511ddc
add dword [ebx + 0x10], 0xffffffff
jne 0x511ddc
push 0
lea eax, [ebx + 8]
push eax
mov dword [ebx + 0x10], 0
call dword [0x100820c4]
mov ecx, dword [ebx + 0xc]
test ecx, ecx
lea eax, [ebx + 0xc]
jle 0x511ddc
push eax
call dword [0x100820a4]
mov edx, dword [ebx + 0x14]
push 0
push 1
push edx
call dword [0x100820c0]
jmp 0x511ddc
test eax, eax
jne 0x511b7a
mov eax, dword [esi + 4]
mov ecx, dword [esi]
push eax
push ecx
lea ecx, [esp + 0x18]
call fcn.005253e0
mov edx, dword [esp + 0x20]
mov eax, dword [esp + 0x1c]
sub edx, ebx
push edx
push eax
lea ecx, [esp + 0xfc]
call fcn.0050aac0
mov ecx, eax
call fcn.0050aab0
push eax
lea ecx, [esp + 0x14]
call fcn.00525470
lea ecx, [esp + 0x10]
call fcn.0050aab0
mov cx, word [eax]
shr cx, 1
movzx edx, cx
mov dword [esp + 0x20], edx
mov dword [esp + 0x30], 1
jmp 0x511b7e
test esi, esi
je 0x511b87
push esi
call fcn.004c3420
add esp, 4
lea ecx, [esp + 0x44]
call fcn.004c4570
mov edi, dword [esp + 0x20]
mov esi, dword [esp + 0x1c]
lea ecx, [esp + 0x10]
call fcn.0050aab0
cmp dword [eax + 4], esi
je 0x511bc0
sub esi, 2
add ebx, 0xffff
cmp dword [esp + 0x30], 0
mov dword [esp + 0x1c], esi
je 0x5118b1
jmp 0x511bd6
cmp dword [esp + 0x30], 0
jne 0x511bd6
lea ecx, [esp + 0x10]
call fcn.0050aab0
lea ecx, [edi + edi]
mov word [eax], cx
lea ecx, [esp + 0x10]
call fcn.0050aab0
mov edx, dword [eax + 4]
lea ecx, [esp + 0x10]
mov dword [esp + 0x1c], edx
xor edi, edi
call fcn.0050aab0
mov ax, word [eax]
shr ax, 1
movzx ecx, ax
mov dword [esp + 0x20], ecx
mov edi, edi
mov edx, dword [esp + 0x1c]
cmp word [edx], 0x5c
je 0x511c15
cmp di, word [esp + 0x20]
jne 0x511d1b
lea ecx, [esp + 0x10]
call fcn.0050aab0
mov edx, dword [esp + 0x1c]
lea ecx, [edi + edi]
mov word [eax], cx
xor ebx, ebx
cmp word [edx], 0x5c
jne 0x511c42
lea ecx, [esp + 0x10]
call fcn.0050aab0
add word [eax], 2
mov ebx, 1
mov esi, dword [0x1018efa4]
push 0x21
push 3
lea ecx, [esp + 0x104]
mov dword [esp + 0x34], 0
add esi, 0x130
call fcn.0053ae20
mov ecx, eax
call fcn.0050aab0
push eax
lea ecx, [esp + 0x1b8]
call fcn.0050aab0
mov edx, dword [esi]
push eax
push 0x100001
lea eax, [esp + 0x40]
push eax
mov eax, dword [edx + 0x24]
mov ecx, esi
call eax
call eax
test eax, eax
jne 0x511d07
push 0x400
call fcn.004c32d0
mov esi, dword [0x1018efa4]
add esp, 4
push 1
push 0
push 0
push 3
push 0x400
push eax
lea ecx, [esp + 0x124]
mov dword [esp + 0xac], eax
mov dword [esp + 0xb0], 0x400
add esi, 0x4f0
call fcn.0053ae20
mov ecx, eax
call fcn.0050aab0
mov ecx, dword [esp + 0x44]
mov edx, dword [esi]
push eax
mov eax, dword [edx + 0x24]
push 0
push 0
push 0
push ecx
mov ecx, esi
call eax
call eax
test eax, eax
je 0x511d28
lea ecx, [esp + 0x94]
call fcn.004c4ae0
lea ecx, [esp + 0x2c]
call fcn.004c4570
cmp di, word [esp + 0x20]
je 0x511df7
add edi, 1
add dword [esp + 0x1c], 2
jmp 0x511c00
mov esi, dword [ebp + 0x10]
lea ecx, [esp + 0x10]
push ecx
mov ecx, esi
call fcn.00525440
test ebx, ebx
je 0x511d47
mov ecx, esi
call fcn.0050aab0
add word [eax], 0xfffe
mov eax, dword [esp + 0x20]
cmp ax, di
jne 0x511d71
push 0x1008241c
lea ecx, [esp + 0x120]
call fcn.0050aae0
mov ecx, eax
call fcn.0050aab0
mov edx, dword [eax + 4]
mov eax, dword [eax]
push edx
push eax
jmp 0x511da5
sub eax, edi
sub eax, 1
push eax
lea ecx, [esp + 0x14]
call fcn.0050aab0
mov edx, dword [eax + 4]
movzx ecx, di
lea eax, [edx + ecx*2 + 2]
push eax
lea ecx, [esp + 0x134]
call fcn.0050aac0
mov ecx, eax
call fcn.0050aab0
mov ecx, dword [eax + 4]
mov edx, dword [eax]
push ecx
push edx
mov ecx, dword [ebp + 0x14]
call fcn.005253e0
lea ecx, [esp + 0x94]
call fcn.004c4ae0
lea ecx, [esp + 0x2c]
call fcn.004c4570
mov edx, dword [ebp + 0x10]
sub esp, 8
mov ecx, esp
push edx
call fcn.00525350
mov ecx, dword [esp + 0x98]
call fcn.00510ce0
lea ecx, [esp + 0x10]
call fcn.00525460
lea ecx, [esp + 0x28]
call fcn.0053b3f0
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x10
lea ecx, [esp + 0x10]
call fcn.0050aab0
mov ecx, dword [esp + 0x20]
lea edx, [ecx + ecx]
push 1
push 0x10082b08
lea ecx, [esp + 0x18]
mov word [eax], dx
call fcn.0050aab0
push eax
lea ecx, [esp + 0x148]
call fcn.0050ab20
mov ecx, eax
call fcn.0050ac20
test eax, eax
je 0x511f5d
mov eax, dword [0x10090848]
mov ecx, dword [0x1009084c]
mov edx, dword [0x10090850]
mov dword [esp + 0xb8], eax
mov ax, word [0x10090854]
mov dword [esp + 0xbc], ecx
lea ecx, [esp + 0x10]
mov dword [esp + 0xc0], edx
mov word [esp + 0xc4], ax
call fcn.0050aab0
mov cx, word [eax]
and cx, 0xfffe
cmp cx, 0xc
jb 0x511f5d
lea ecx, [esp + 0x10]
call fcn.0050aab0
mov edx, dword [eax + 4]
cmp word [edx + 0xa], 0x3a
jne 0x511f5d
lea ecx, [esp + 0x10]
call fcn.0050aab0
mov eax, dword [eax + 4]
mov cx, word [eax + 8]
lea edx, [esp + 0xb8]
mov word [esp + 0xc0], cx
push edx
lea ecx, [esp + 0x150]
call fcn.0050aae0
mov ecx, eax
call fcn.0050aab0
mov ecx, dword [eax + 4]
mov edx, dword [eax]
push ecx
mov ecx, dword [ebp + 0x10]
push edx
call fcn.005253e0
lea ecx, [esp + 0x10]
mov edi, 6
call fcn.0050aab0
cmp word [eax], 0xc
jne 0x511f05
push 0x1008241c
lea ecx, [esp + 0x160]
call fcn.0050aae0
jmp 0x511f42
lea ecx, [esp + 0x10]
call fcn.0050aab0
mov esi, dword [eax + 4]
add esi, 0xc
cmp word [esi], 0x5c
jne 0x511f22
add esi, 2
mov edi, 7
lea ecx, [esp + 0x10]
call fcn.0050aab0
movzx eax, word [eax]
shr ax, 1
sub ax, di
lea ecx, [esp + 0x16c]
push eax
push esi
call fcn.0050aac0
mov ecx, eax
call fcn.0050aab0
mov ecx, dword [eax + 4]
mov edx, dword [eax]
push ecx
mov ecx, dword [ebp + 0x14]
push edx
call fcn.005253e0
jmp 0x511dc2
mov ecx, dword [ebp + 0x10]
call fcn.00525510
mov ecx, dword [ebp + 0x14]
lea eax, [esp + 0x10]
push eax
call fcn.00525440
jmp 0x511ddc