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

Disassembly:
push 0xffffffffffffffff
push 0x71fb30
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x3c
push ebx
push ebp
push esi
mov esi, ecx
mov ecx, dword [esp + 0x58]
push edi
call fcn.00561080
test eax, eax
mov dword [esp + 0x24], eax
je 0x575c61
mov ebx, dword [esp + 0x60]
mov cl, byte [0x746634]
mov al, byte [ebx + 8]
cmp al, cl
mov ecx, dword [esp + 0x64]
jne 0x574a6e
test ecx, ecx
je 0x574a6e
mov eax, dword [esp + 0x6c]
test eax, eax
je 0x574a6e
push eax
push ecx
push ebx
mov ecx, esi
call fcn.00572070
push 8
push 0x55
mov ecx, esi
call fcn.004d62c0
xor ecx, ecx
mov cl, byte [ebx + 8]
push 8
push ecx
mov ecx, esi
call fcn.004d62c0
mov eax, dword [ebx + 4]
push eax
mov ecx, esi
call fcn.00578570
mov edx, dword [esp + 0x68]
push 0x20
push edx
mov ecx, esi
call fcn.004d6340
test byte [esp + 0x68], 1
je 0x574ae5
lea eax, [ebx + 0x90]
mov ecx, eax
mov eax, dword [ecx]
mov edi, dword [ecx + 4]
mov ebp, dword [ecx + 8]
push 0x20
push 0x3f800000
push eax
mov ecx, esi
call fcn.004d6920
push 0x20
push 0x3f800000
push edi
mov ecx, esi
call fcn.004d6920
push 0x20
push 0x3f800000
push ebp
mov ecx, esi
call fcn.004d6920
test byte [esp + 0x68], 2
je 0x574b7c
lea edx, [ebx + 0x9c]
mov eax, dword [edx]
mov edi, dword [edx + 4]
mov ebp, dword [edx + 8]
push 0x20
push 0x3f800000
push eax
mov ecx, esi
call fcn.004d6920
push 0x20
push 0x3f800000
push edi
mov ecx, esi
call fcn.004d6920
push 0x20
push 0x3f800000
push ebp
mov ecx, esi
call fcn.004d6920
mov eax, dword [ebx]
mov ecx, ebx
call dword [eax + 0x30]
test eax, eax
je 0x574b7c
mov edx, dword [ebx]
mov ecx, ebx
call dword [edx + 0x30]
mov edx, dword [eax]
mov ecx, eax
call dword [edx + 0xc4]
cmp eax, dword [0x746644]
push 8
mov ecx, esi
je 0x574b75
push 1
call fcn.004d62c0
mov eax, dword [ebx]
mov ecx, ebx
call dword [eax + 0x30]
mov edx, dword [eax]
mov ecx, eax
call dword [edx + 0xc4]
push eax
mov ecx, esi
call fcn.00578570
jmp 0x574b7c
push 0
call fcn.004d62c0
test byte [esp + 0x68], 0x20
je 0x574bd3
mov eax, dword [ebx]
mov ecx, ebx
call dword [eax + 0xd0]
push 0x10
mov ecx, esi
mov edi, eax
push edi
call fcn.004d6300
cmp di, 0xfffe
jb 0x574bd3
mov edx, dword [ebx]
lea eax, [esp + 0x3c]
push eax
mov ecx, ebx
call dword [edx + 0xc8]
mov edx, dword [eax]
push 0x10
sub esp, 0x10
mov ecx, esp
mov dword [ecx], edx
mov edx, dword [eax + 4]
mov dword [ecx + 4], edx
mov edx, dword [eax + 8]
mov eax, dword [eax + 0xc]
mov dword [ecx + 8], edx
mov dword [ecx + 0xc], eax
mov ecx, esi
call fcn.004d6380
mov edi, dword [esp + 0x68]
and edi, 4
mov dword [esp + 0x20], edi
je 0x574bfb
mov ecx, dword [ebx + 0xd8]
push 0x20
mov edx, ecx
push 0x3f800000
mov dword [esp + 0x68], ecx
push edx
mov ecx, esi
call fcn.004d6920
test edi, edi
je 0x574ebd
mov edi, dword [ebx + 0xd4]
push 0x10
push edi
mov ecx, esi
mov dword [esp + 0x24], edi
call fcn.004d6300
mov eax, dword [ebx]
mov ecx, ebx
call dword [eax + 0x30]
test eax, eax
je 0x574ebd
mov edx, dword [ebx]
mov ecx, ebx
call dword [edx + 0x30]
cmp di, 0x2719
mov ebp, eax
je 0x574c41
cmp di, 0x277d
jne 0x574d8b
mov eax, dword [ebp + 0x9c8]
movzx eax, byte [eax + 0x96c]
inc eax
push 2
push eax
mov ecx, esi
mov dword [esp + 0x68], eax
call fcn.004d62c0
mov eax, dword [esp + 0x60]
xor edi, edi
test eax, eax
jle 0x574d8b
jmp 0x574c70
mov ecx, dword [ebp + 0x9c8]
push edi
call fcn.004d2b50
mov eax, dword [eax + 0xc]
push eax
mov ecx, esi
call fcn.00578570
mov ecx, dword [ebp + 0x9c8]
push edi
call fcn.004d2b50
movzx eax, word [eax + 0x12]
push 0x10
push eax
mov ecx, esi
call fcn.004d6300
mov ecx, dword [ebp + 0x9c8]
push edi
call fcn.004d2b50
movzx eax, word [eax + 0x14]
push 0x10
push eax
mov ecx, esi
call fcn.004d6300
mov ecx, dword [ebp + 0x9c8]
push edi
call fcn.004d2b50
movzx eax, word [eax + 8]
push 0x10
push eax
mov ecx, esi
call fcn.004d6300
mov ecx, dword [ebp + 0x9c8]
push edi
call fcn.004d2b50
mov al, byte [eax + 0x5c]
mov byte [esp + 0x6c], al
mov ecx, dword [esp + 0x6c]
push 4
push ecx
mov ecx, esi
call fcn.004d62c0
mov ecx, dword [ebp + 0x9c8]
push edi
call fcn.004d2b50
movzx eax, word [eax + 0x64]
push 0x10
push eax
mov ecx, esi
call fcn.004d6300
mov ecx, dword [ebp + 0x9c8]
push 1
push edi
call fcn.004d2b50
mov ecx, eax
call fcn.004d2180
push 9
push eax
mov ecx, esi
call fcn.004d6300
mov ecx, dword [ebp + 0x9c8]
push edi
call fcn.004d2b50
mov eax, dword [eax + 0x40]
push eax
mov ecx, esi
call fcn.004d68e0
mov ecx, dword [ebp + 0x9c8]
push edi
call fcn.004d2b50
mov eax, dword [eax + 0x48]
push eax
mov ecx, esi
call fcn.004d68e0
mov ecx, dword [ebp + 0x9c8]
push edi
call fcn.004d2b50
mov dl, byte [eax + 0x3a]
mov byte [esp + 0x18], dl
mov eax, dword [esp + 0x18]
push 4
push eax
mov ecx, esi
call fcn.004d62c0
mov eax, dword [esp + 0x60]
inc edi
cmp edi, eax
jl 0x574c70
mov edi, dword [esp + 0x1c]
cmp di, 0x271f
je 0x574dce
cmp di, 0x2720
je 0x574dce
cmp di, 0x2af8
je 0x574dce
cmp di, 0x2721
je 0x574dce
cmp di, 0x2722
je 0x574dce
cmp di, 0x2723
je 0x574dce
cmp di, 0x2724
je 0x574dce
cmp di, 0x274d
je 0x574dce
cmp di, 0x28a1
jne 0x574e16
mov eax, dword [ebp + 0x1c0]
push 0x20
push eax
mov ecx, esi
mov dword [esp + 0x68], eax
call fcn.004d6340
cmp dword [esp + 0x60], 0x31
jne 0x574e08
mov ecx, dword [ebp + 0xa2c]
push 0x10
call fcn.005a4c20
test eax, eax
mov ecx, esi
je 0x574e01
mov eax, dword [eax + 0x14]
jmp 0x574e10
push 0x7f000000
jmp 0x574e11
mov eax, dword [ebp + 0x95c]
mov ecx, esi
push eax
call fcn.00578570
cmp di, 0x2721
je 0x574e40
cmp di, 0x2722
je 0x574e40
cmp di, 0x2723
je 0x574e40
cmp di, 0x2724
je 0x574e40
cmp di, 0x274d
je 0x574e40
cmp di, 0x28a1
jne 0x574ebd
cmp dword [ebp + 0x1bc], 0x7f000000
mov ecx, esi
push 8
je 0x574e67
push 1
call fcn.004d62c0
mov eax, dword [ebp + 0x1bc]
push eax
mov ecx, esi
call fcn.00578570
jmp 0x574ead
push 2
call fcn.004d62c0
mov ecx, dword [ebp + 0x1b0]
push 0x20
push 0x3f800000
push ecx
mov ecx, esi
call fcn.004d6920
mov edx, dword [ebp + 0x1b4]
push 0x20
push 0x3f800000
push edx
mov ecx, esi
call fcn.004d6920
mov eax, dword [ebp + 0x1b8]
push 0x20
push 0x3f800000
push eax
mov ecx, esi
call fcn.004d6920
mov ebp, dword [ebp + 0x1c8]
push 0x20
push ebp
mov ecx, esi
call fcn.004d6340
test byte [esp + 0x68], 8
je 0x57520f
mov edx, dword [esp + 0x64]
mov ecx, dword [ebx + 0x134]
mov eax, dword [edx + 0xac]
xor edi, edi
mov dword [esp + 0x18], ecx
mov dword [esp + 0x14], eax
mov dword [esp + 0x40], edi
mov dword [esp + 0x44], edi
mov dword [esp + 0x3c], edi
mov dword [esp + 0x54], edi
mov dword [esp + 0x34], edi
mov dword [esp + 0x38], edi
mov dword [esp + 0x30], edi
xor eax, eax
cmp ecx, edi
mov byte [esp + 0x54], 1
mov dword [esp + 0x10], eax
jle 0x5750bb
mov ecx, dword [ebx + 0x130]
mov ebp, dword [ecx + eax*4]
mov dx, word [ebp]
mov ecx, ebp
mov word [esp + 0x6c], dx
mov dword [esp + 0x60], edi
call fcn.004ca9d0
test eax, eax
je 0x574f78
mov eax, dword [esp + 0x40]
xor edi, edi
test eax, eax
jle 0x574fad
mov ecx, dword [esp + 0x3c]
mov edx, dword [ecx + edi*8 + 4]
mov eax, dword [ecx + edi*8]
mov dword [esp + 0x2c], edx
mov dx, word [eax]
cmp dx, word [esp + 0x6c]
jne 0x574f6d
mov dl, byte [eax + 8]
cmp dl, byte [ebp + 8]
jne 0x574f6d
mov eax, dword [eax + 4]
cmp eax, dword [ebp + 4]
je 0x5750a4
mov ecx, dword [esp + 0x3c]
mov eax, dword [esp + 0x40]
inc edi
cmp edi, eax
jl 0x574f40
jmp 0x574fad
mov ecx, dword [esp + 0x34]
xor edx, edx
xor eax, eax
cmp ecx, edi
jle 0x574fad
mov ecx, dword [esp + 0x30]
jmp 0x574f90
mov di, word [ecx + eax*2]
cmp di, word [esp + 0x6c]
jne 0x574f9c
inc edx
mov edi, dword [esp + 0x34]
inc eax
cmp eax, edi
jl 0x574f90
test edx, edx
jg 0x5750a4
mov eax, dword [esp + 0x14]
xor edi, edi
test eax, eax
jle 0x575020
jmp 0x574fc0
mov eax, dword [esp + 0x60]
test eax, eax
jne 0x5750a4
mov ecx, ebp
call fcn.004ca9d0
mov ecx, dword [esp + 0x64]
mov edx, dword [ecx + 0xa8]
mov cx, word [esp + 0x6c]
test eax, eax
mov eax, dword [edx + edi*4]
je 0x574ffe
cmp word [eax], cx
jne 0x57500b
mov dl, byte [eax + 8]
cmp dl, byte [ebp + 8]
jne 0x57500b
mov eax, dword [eax + 4]
cmp eax, dword [ebp + 4]
jmp 0x575001
cmp word [eax], cx
jne 0x57500b
mov dword [esp + 0x60], 1
mov eax, dword [esp + 0x14]
inc edi
cmp edi, eax
jl 0x574fc0
mov eax, dword [esp + 0x60]
test eax, eax
jne 0x5750a4
xor eax, eax
or eax, 0x41
push eax
push ebp
lea ecx, [esp + 0x44]
call fcn.004e3b70
mov edx, dword [esp + 0x38]
cmp dword [esp + 0x34], edx
jne 0x57508e
mov eax, edx
test eax, eax
je 0x575044
add eax, eax
jmp 0x575049
mov eax, 0x10
mov edi, dword [esp + 0x30]
mov dword [esp + 0x38], eax
add eax, eax
push eax
call fcn.006fa7e6
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0x38]
add esp, 4
test eax, eax
jle 0x575081
mov eax, dword [esp + 0x30]
mov edx, dword [esp + 0x34]
mov ecx, edi
sub ecx, eax
mov bp, word [ecx + eax]
mov word [eax], bp
add eax, 2
dec edx
jne 0x575074
test edi, edi
je 0x57508e
push edi
call fcn.006fa390
add esp, 4
mov eax, dword [esp + 0x34]
mov cx, word [esp + 0x6c]
mov edx, dword [esp + 0x30]
mov word [edx + eax*2], cx
inc eax
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x18]
inc eax
xor edi, edi
cmp eax, ecx
mov dword [esp + 0x10], eax
jl 0x574f11
cmp dword [esp + 0x14], edi
mov dword [esp + 0x10], edi
jle 0x57517a
lea esp, [esp]
mov eax, dword [esp + 0x64]
mov ecx, dword [eax + 0xa8]
mov edx, dword [esp + 0x10]
mov ebp, dword [ecx + edx*4]
mov ax, word [ebp]
mov word [esp + 0x6c], ax
mov eax, dword [esp + 0x18]
xor edi, edi
cmp eax, edi
mov dword [esp + 0x60], edi
jle 0x575155
mov eax, dword [esp + 0x60]
test eax, eax
jne 0x575165
mov ecx, ebp
call fcn.004ca9d0
test eax, eax
mov dx, word [esp + 0x6c]
je 0x57512e
mov ecx, dword [ebx + 0x130]
mov eax, dword [ecx + edi*4]
cmp word [eax], dx
jne 0x575144
mov cl, byte [eax + 8]
cmp cl, byte [ebp + 8]
jne 0x575144
mov edx, dword [eax + 4]
cmp edx, dword [ebp + 4]
jmp 0x57513a
mov eax, dword [ebx + 0x130]
mov ecx, dword [eax + edi*4]
cmp word [ecx], dx
jne 0x575144
mov dword [esp + 0x60], 1
mov eax, dword [esp + 0x18]
inc edi
cmp edi, eax
jl 0x5750f8
mov eax, dword [esp + 0x60]
test eax, eax
jne 0x575165
xor eax, eax
or eax, 0x44
push eax
push ebp
lea ecx, [esp + 0x44]
call fcn.004e3b70
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x14]
inc eax
cmp eax, ecx
mov dword [esp + 0x10], eax
jl 0x5750d0
mov edi, dword [esp + 0x40]
push 0x10
push edi
mov ecx, esi
call fcn.004d6300
xor ebp, ebp
test edi, edi
jle 0x5751eb
mov edi, edi
mov eax, dword [esp + 0x3c]
mov edi, dword [eax + ebp*8]
mov cx, word [edi]
xor edx, edx
mov dl, byte [eax + ebp*8 + 4]
push 8
mov word [esp + 0x68], cx
mov ecx, esi
push edx
call fcn.004d62c0
mov eax, dword [esp + 0x64]
push 0x10
push eax
mov ecx, esi
call fcn.004d6300
mov ecx, edi
call fcn.004ca9d0
test eax, eax
je 0x5751e2
mov ecx, dword [edi + 4]
push ecx
mov ecx, esi
call fcn.00578570
xor edx, edx
mov dl, byte [edi + 8]
push 8
mov ecx, esi
push edx
call fcn.004d62c0
mov eax, dword [esp + 0x40]
inc ebp
cmp ebp, eax
jl 0x575190
mov eax, dword [esp + 0x30]
push eax
mov byte [esp + 0x58], 0
call fcn.006fa390
mov ecx, dword [esp + 0x40]
push ecx
mov dword [esp + 0x5c], 0xffffffff
call fcn.006fa390
add esp, 8
test byte [esp + 0x68], 0x10
je 0x57554f
mov edx, dword [ebx]
xor ebp, ebp
mov ecx, ebx
mov dword [esp + 0x60], ebp
mov dword [esp + 0x64], ebp
mov dword [esp + 0x6c], ebp
mov dword [esp + 0x18], ebp
call dword [edx + 0x40]
test eax, eax
mov eax, dword [ebx]
mov ecx, ebx
je 0x5752a0
call dword [eax + 0x40]
cmp dword [eax + 0x2bc], ebp
je 0x57554f
mov edi, dword [esp + 0x5c]
mov ecx, edi
call fcn.00561080
mov eax, dword [eax + 4]
push ebp
push eax
mov ecx, ebx
call fcn.0057cb80
cmp eax, 0x5a
jge 0x575296
mov ecx, edi
call fcn.00561080
mov edx, dword [ebx]
mov ecx, ebx
mov edi, eax
call dword [edx + 0x40]
mov ebp, dword [eax + 0x2b8]
mov eax, dword [edi]
mov ecx, edi
call dword [eax + 0x30]
mov ecx, dword [eax + 0xa74]
cmp ebp, dword [ecx + 0x78]
je 0x575296
mov dword [esp + 0x64], 1
mov edx, dword [esp + 0x64]
push edx
jmp 0x575548
call dword [eax + 0x18]
test eax, eax
je 0x5753e0
mov edi, dword [esp + 0x5c]
mov ecx, edi
call fcn.00561080
mov eax, dword [eax + 4]
push ebp
push eax
mov ecx, ebx
call fcn.0057cb80
cmp eax, 0x5a
jge 0x575300
mov ecx, edi
call fcn.00561080
mov edx, dword [ebx]
mov ecx, ebx
mov ebp, eax
call dword [edx + 0x18]
mov eax, dword [eax + 0x2b8]
mov edx, dword [ebp]
mov ecx, ebp
mov dword [esp + 0x14], eax
call dword [edx + 0x30]
mov eax, dword [eax + 0xa74]
mov ecx, dword [esp + 0x14]
cmp ecx, dword [eax + 0x78]
je 0x575300
mov dword [esp + 0x64], 1
mov edx, dword [ebx]
mov ecx, ebx
call dword [edx + 0x18]
mov cl, byte [eax + 0x2f4]
test cl, cl
jne 0x57539f
mov ecx, edi
call fcn.00561080
mov eax, dword [eax + 4]
push 0
push eax
mov ecx, ebx
call fcn.0057cb80
cmp eax, 0x5a
jge 0x57539f
mov ecx, edi
call fcn.00561080
mov ebp, eax
mov eax, dword [ebx]
mov ecx, ebx
call dword [eax + 0x18]
mov ecx, dword [eax + 0x2b8]
mov edx, dword [ebp]
mov dword [esp + 0x14], ecx
mov ecx, ebp
call dword [edx + 0x30]
mov eax, dword [eax + 0xa74]
mov ecx, dword [esp + 0x14]
cmp ecx, dword [eax + 0x78]
je 0x57539f
mov ecx, edi
call fcn.00561080
mov edx, dword [eax]
mov ecx, eax
call dword [edx + 0x30]
mov edi, dword [eax + 4]
mov eax, dword [ebx]
mov ecx, ebx
call dword [eax + 0x18]
mov ecx, dword [eax + 0x2e0]
add eax, 0x2dc
xor edx, edx
test ecx, ecx
jle 0x5753b8
mov eax, dword [eax]
lea ebx, [ebx]
cmp dword [eax], edi
jne 0x575395
inc edx
add eax, 4
dec ecx
jne 0x575390
test edx, edx
je 0x5753b8
mov edx, dword [ebx]
mov ecx, ebx
call dword [edx + 0x18]
mov ecx, dword [eax + 0x2e8]
test ecx, ecx
je 0x5753b8
mov dword [esp + 0x60], 1
mov eax, dword [ebx]
mov ecx, ebx
call dword [eax + 0x18]
mov ecx, dword [eax + 0x2c4]
mov edi, 1
cmp ecx, edi
mov ebp, edi
je 0x5753d4
mov ebp, dword [esp + 0x6c]
mov edx, dword [ebx]
mov ecx, ebx
call dword [edx + 0x18]
jmp 0x57551b
mov edx, dword [ebx]
mov ecx, ebx
call dword [edx + 0x48]
test eax, eax
je 0x57554f
mov edi, dword [esp + 0x5c]
mov ecx, edi
call fcn.00561080
mov eax, dword [eax + 4]
push ebp
push eax
mov ecx, ebx
call fcn.0057cb80
cmp eax, 0x5a
jge 0x575444
mov ecx, edi
call fcn.00561080
mov ebp, eax
mov eax, dword [ebx]
mov ecx, ebx
call dword [eax + 0x48]
mov ecx, dword [eax + 0x23c]
mov edx, dword [ebp]
mov dword [esp + 0x14], ecx
mov ecx, ebp
call dword [edx + 0x30]
mov eax, dword [eax + 0xa74]
mov ecx, dword [esp + 0x14]
cmp ecx, dword [eax + 0x78]
je 0x575444
mov dword [esp + 0x64], 1
mov edx, dword [ebx]
mov ecx, ebx
call dword [edx + 0x48]
mov cl, byte [eax + 0x28c]
test cl, cl
jne 0x5754df
mov ecx, edi
call fcn.00561080
mov eax, dword [eax + 4]
push 0
push eax
mov ecx, ebx
call fcn.0057cb80
cmp eax, 0x5a
jge 0x5754df
mov ecx, edi
call fcn.00561080
mov ebp, eax
mov eax, dword [ebx]
mov ecx, ebx
call dword [eax + 0x48]
mov ecx, dword [eax + 0x23c]
mov edx, dword [ebp]
mov dword [esp + 0x14], ecx
mov ecx, ebp
call dword [edx + 0x30]
mov eax, dword [eax + 0xa74]
mov ecx, dword [esp + 0x14]
cmp ecx, dword [eax + 0x78]
je 0x5754df
mov ecx, edi
call fcn.00561080
mov edx, dword [eax]
mov ecx, eax
call dword [edx + 0x30]
mov edi, dword [eax + 4]
mov eax, dword [ebx]
mov ecx, ebx
call dword [eax + 0x48]
mov ecx, dword [eax + 0x31c]
add eax, 0x318
xor edx, edx
test ecx, ecx
jle 0x5754f8
mov eax, dword [eax]
mov edi, edi
cmp dword [eax], edi
jne 0x5754d5
inc edx
add eax, 4
dec ecx
jne 0x5754d0
test edx, edx
je 0x5754f8
mov edx, dword [ebx]
mov ecx, ebx
call dword [edx + 0x48]
mov ecx, dword [eax + 0x278]
test ecx, ecx
je 0x5754f8
mov dword [esp + 0x60], 1
mov eax, dword [ebx]
mov ecx, ebx
call dword [eax + 0x48]
mov ecx, dword [eax + 0x260]
mov edi, 1
cmp ecx, edi
mov ebp, edi
je 0x575514
mov ebp, dword [esp + 0x6c]
mov edx, dword [ebx]
mov ecx, ebx
call dword [edx + 0x48]
cmp dword [eax + 0xf8], edi
je 0x575527
mov edi, dword [esp + 0x18]
mov eax, dword [esp + 0x64]
mov ecx, esi
push eax
call fcn.004d68e0
mov ecx, dword [esp + 0x60]
push ecx
mov ecx, esi
call fcn.004d68e0
mov ecx, esi
push ebp
call fcn.004d68e0
push edi
mov ecx, esi
call fcn.004d68e0
mov dl, byte [ebx + 8]
cmp dl, byte [0x746634]
jne 0x575c61
mov edi, dword [esp + 0x20]
test edi, edi
je 0x5756af
mov edx, dword [esp + 0x24]
mov eax, dword [ebx + 0x340]
mov ecx, dword [ebx + 4]
cmp ecx, dword [edx + 4]
mov al, byte [eax + 0x28]
mov byte [esp + 0x64], al
jne 0x57559a
test al, al
je 0x57559f
cmp dword [ebx + 0xa18], 1
jne 0x57559f
mov dword [ebx + 0xa18], 0
mov byte [esp + 0x64], 0
mov eax, dword [esp + 0x64]
push 8
push eax
mov ecx, esi
call fcn.004d62c0
test edi, edi
je 0x5756af
mov ecx, dword [esp + 0x1c]
mov edi, dword [ebx + 0x340]
push ecx
mov ecx, ebx
mov dword [esp + 0x64], edi
call fcn.004cae60
cmp eax, 1
mov ecx, esi
push 0x10
jne 0x5755e0
push 0
call fcn.004d6300
jmp 0x5756af
mov eax, dword [edi + 0x8c]
cdq
sub eax, edx
mov ebp, eax
mov eax, dword [edi + 0x9c]
cdq
sar ebp, 1
sub eax, edx
mov edi, eax
movzx edx, bp
sar edi, 1
cmp edx, edi
mov dword [esp + 0x68], ebp
jl 0x57564a
sub ebp, edi
push ebp
call fcn.004d6300
test bp, bp
jbe 0x575642
mov eax, dword [ebx + 0xa14]
push eax
mov ecx, esi
call fcn.004d68e0
mov eax, dword [ebx + 0xa14]
test eax, eax
je 0x575642
fld dword [ebx + 0xa0c]
push 0x20
push 0x3f800000
push ecx
fstp dword [esp]
mov ecx, esi
call fcn.004d6920
add ebp, edi
mov dword [esp + 0x64], ebp
jmp 0x575651
push 0
call fcn.004d6300
test bp, bp
je 0x5756af
movzx eax, word [esp + 0x64]
cmp edi, eax
mov ecx, dword [esp + 0x60]
mov ebp, dword [ecx + 0x90]
mov dword [esp + 0x64], eax
jge 0x5756af
lea ecx, [ecx]
mov edx, dword [ebp + edi*8]
push 0x20
push 0x3f800000
push edx
mov ecx, esi
call fcn.004d6920
mov eax, dword [ebp + edi*8 + 4]
push 0x20
push 0x3f800000
push eax
mov ecx, esi
call fcn.004d6920
push 0x20
push 0x3f800000
push 0
mov ecx, esi
call fcn.004d6920
mov eax, dword [esp + 0x64]
inc edi
cmp edi, eax
jl 0x575670
test byte [esp + 0x68], 0x40
je 0x5757a8
mov al, byte [ebx + 0x4d1]
mov cl, byte [ebx + 0x9f2]
mov edx, dword [ebx + 0x4e0]
mov di, word [ebx + 0x9f0]
mov bp, word [ebx + 0x9fc]
mov byte [esp + 0x6c], al
mov eax, dword [esp + 0x5c]
test eax, eax
mov byte [esp + 0x60], cl
mov ecx, dword [ebx + 0xabc]
mov dword [esp + 0x20], edx
mov dword [esp + 0x24], ecx
je 0x575738
mov ecx, eax
call fcn.00561080
test eax, eax
je 0x575738
mov ecx, dword [esp + 0x5c]
call fcn.00561080
mov edx, dword [eax]
mov ecx, eax
call dword [edx + 0x30]
test eax, eax
je 0x575738
mov ecx, dword [esp + 0x5c]
call fcn.00561080
mov ecx, dword [ebx + 4]
mov edx, dword [eax]
push ecx
mov ecx, eax
call dword [edx + 0x30]
mov ecx, eax
call fcn.0057cd90
mov byte [esp + 0x64], al
jmp 0x57573d
mov byte [esp + 0x64], 2
push 0x10
push edi
mov ecx, esi
call fcn.004d6300
mov eax, dword [esp + 0x60]
push 8
push eax
mov ecx, esi
call fcn.004d62c0
push 0x10
push ebp
mov ecx, esi
call fcn.004d6300
mov ecx, dword [esp + 0x64]
push 8
push ecx
mov ecx, esi
call fcn.004d62c0
mov edx, dword [esp + 0x6c]
push 8
push edx
mov ecx, esi
call fcn.004d62c0
mov eax, dword [esp + 0x24]
push eax
mov ecx, esi
call fcn.004d68e0
mov ecx, dword [esp + 0x20]
push ecx
mov ecx, esi
call fcn.004d68e0
cmp byte [esp + 0x60], 2
jne 0x5757a8
mov edx, dword [ebx + 0x9f4]
push edx
mov ecx, esi
call fcn.00578570
mov eax, dword [esp + 0x68]
test ah, 1
je 0x5757e3
push 0x20
push 0x3f800000
mov ecx, ebx
call fcn.004f1b20
push ecx
mov ecx, esi
fstp dword [esp]
call fcn.004d6920
push 0x20
push 0x3f800000
mov ecx, ebx
call fcn.004f1be0
push ecx
mov ecx, esi
fstp dword [esp]
call fcn.004d6920
test dword [esp + 0x68], 0x40000
je 0x5757fb
mov eax, dword [ebx + 0x8c]
push eax
mov ecx, esi
call fcn.00578570
mov eax, dword [esp + 0x68]
test ah, 2
je 0x57582e
fld dword [ebx + 0x90]
push 0xa
call fcn.006fae8c
push eax
mov ecx, esi
call fcn.004d6340
fld dword [ebx + 0x94]
push 0xa
call fcn.006fae8c
push eax
mov ecx, esi
call fcn.004d6340
mov eax, dword [esp + 0x68]
test ah, 4
je 0x575889
mov edx, dword [ebx]
push 0x10
push 1
mov ecx, ebx
call dword [edx + 0x9c]
mov ecx, esi
push eax
call fcn.004d6300
xor eax, eax
mov ax, word [ebx + 0xe0]
push 0x10
mov ecx, esi
push eax
call fcn.004d6300
xor ecx, ecx
mov cx, word [ebx + 0xe4]
push 0x10
push ecx
mov ecx, esi
call fcn.004d6300
mov edx, dword [ebx]
push 0x10
push 1
mov ecx, ebx
call dword [edx + 0x98]
mov ecx, esi
push eax
call fcn.004d6300
test dword [esp + 0x68], 0x80000
je 0x5758ef
mov eax, dword [ebx + 0xa74]
xor ecx, ecx
mov cx, word [eax + 0x124]
push 0x10
push ecx
mov ecx, esi
call fcn.004d6300
mov edx, dword [ebx + 0xa74]
xor eax, eax
mov ax, word [edx + 0x122]
push 0x10
mov ecx, esi
push eax
call fcn.004d6300
mov ecx, dword [ebx + 0xa74]
xor edx, edx
mov dx, word [ecx + 0x126]
push 0x10
mov ecx, esi
push edx
call fcn.004d6300
push 0x10
mov ecx, ebx
call fcn.004fd490
mov ecx, esi
push eax
call fcn.004d6300
test dword [esp + 0x68], 0x10000
je 0x57591f
mov eax, dword [ebx + 0xa74]
push 0
add eax, 0x34
push eax
mov ecx, esi
call fcn.005785c0
mov ecx, dword [ebx + 0xa74]
add ecx, 0x3c
push 0
push ecx
mov ecx, esi
call fcn.005785c0
mov eax, dword [esp + 0x68]
test ah, 0x40
je 0x575a06
mov edx, dword [ebx + 0x9d4]
push edx
mov ecx, esi
call fcn.004d68e0
mov al, byte [ebx + 0x9f0]
and al, 0x40
sub al, 0x40
neg al
mov ecx, esi
sbb eax, eax
inc eax
push eax
call fcn.004d68e0
mov ecx, ebx
call fcn.00513fc0
mov ecx, eax
call fcn.005bf690
push eax
mov ecx, esi
call fcn.004d68e0
mov edi, dword [ebx + 4]
mov ecx, ebx
call fcn.00513fc0
mov ecx, eax
call fcn.005bf5c0
sub eax, edi
neg eax
sbb eax, eax
inc eax
push eax
mov ecx, esi
call fcn.004d68e0
mov ecx, dword [ebx + 0x930]
push ecx
mov ecx, esi
call fcn.004d68e0
mov eax, dword [ebx + 0x930]
test eax, eax
je 0x5759ea
mov edx, dword [ebx + 0x92c]
push edx
mov ecx, esi
call fcn.00578570
mov eax, dword [ebx + 0x92c]
mov ecx, dword [0x7a39fc]
mov ecx, dword [ecx + 8]
push eax
call fcn.004ae770
mov edi, eax
mov edx, dword [edi + 0xa74]
push 0
add edx, 0x34
push edx
mov ecx, esi
call fcn.005785c0
mov eax, dword [edi + 0xa74]
push 0
add eax, 0x3c
push eax
mov ecx, esi
call fcn.005785c0
mov ecx, dword [ebx + 0x9e4]
push ecx
mov ecx, esi
call fcn.004d68e0
mov edx, dword [ebx + 0x9e0]
push edx
mov ecx, esi
call fcn.004d68e0
mov eax, dword [esp + 0x68]
test ah, ah
jns 0x575ad7
mov ecx, dword [esp + 0x5c]
call fcn.00561080
mov edx, dword [eax]
mov ecx, eax
call dword [edx + 0x30]
test eax, eax
je 0x575ad7
mov eax, dword [eax + 4]
cmp dword [ebx + 4], eax
jne 0x575a7e
push 1
mov ecx, esi
call fcn.004d68e0
push 1
mov ecx, esi
call fcn.004d68e0
mov eax, dword [0x7a39fc]
mov ecx, dword [eax + 8]
call fcn.004ae6b0
test eax, eax
je 0x575ace
mov ecx, dword [eax + 0x140]
mov edx, dword [ebx + 4]
xor edi, edi
test ecx, ecx
jle 0x575a7b
mov eax, dword [eax + 0x13c]
lea ebx, [ebx]
cmp dword [eax], edx
jne 0x575a75
inc edi
add eax, 4
dec ecx
jne 0x575a70
push edi
jmp 0x575ad0
push eax
mov ecx, ebx
call fcn.00517a20
mov edi, eax
test edi, edi
je 0x575abc
xor ecx, ecx
mov cl, byte [edi + 4]
shr ecx, 1
and ecx, 1
push ecx
mov ecx, esi
call fcn.004d68e0
xor edx, edx
mov dl, byte [edi + 4]
mov ecx, esi
and edx, 1
push edx
call fcn.004d68e0
xor eax, eax
mov al, byte [edi + 4]
shr eax, 4
and eax, 1
push eax
jmp 0x575ad0
push 0
mov ecx, esi
call fcn.004d68e0
push 0
mov ecx, esi
call fcn.004d68e0
push 0
mov ecx, esi
call fcn.004d68e0
test dword [esp + 0x68], 0x20000
je 0x575b4d
mov ecx, ebx
mov byte [esp + 0x5c], 0
call fcn.004edae0
cmp al, 1
jne 0x575af5
mov byte [esp + 0x5c], al
cmp byte [ebx + 0x4d1], 1
jne 0x575b03
or byte [esp + 0x5c], 2
mov al, byte [ebx + 0x4d2]
cmp al, 1
jne 0x575b12
or byte [esp + 0x5c], 4
cmp al, 2
jne 0x575b1b
or byte [esp + 0x5c], 8
cmp al, 3
jne 0x575b24
or byte [esp + 0x5c], 0x10
cmp al, 5
jne 0x575b2d
or byte [esp + 0x5c], 0x20
cmp al, 6
jne 0x575b36
or byte [esp + 0x5c], 0x40
cmp al, 4
jne 0x575b3f
or byte [esp + 0x5c], 0x80
mov ecx, dword [esp + 0x5c]
push 8
push ecx
mov ecx, esi
call fcn.004d62c0
mov eax, dword [esp + 0x68]
test ah, 8
je 0x575b67
push 8
mov ecx, ebx
call fcn.004cb020
mov ecx, esi
push eax
call fcn.004d62c0
mov eax, dword [esp + 0x68]
test ah, 0x10
je 0x575c61
mov edx, dword [ebx + 0xa74]
xor eax, eax
mov ax, word [edx + 0xdc]
push 0x10
mov ecx, esi
push eax
call fcn.004d6300
mov ecx, dword [ebx + 0xa74]
add ecx, 0xe0
push 0x20
push ecx
mov ecx, esi
call fcn.004d6960
mov edx, dword [ebx + 0xa74]
xor eax, eax
mov al, byte [edx + 0xe8]
push 8
mov ecx, esi
push eax
call fcn.004d62c0
mov ecx, dword [ebx + 0xa74]
xor edx, edx
mov dl, byte [ecx + 0x64]
push 8
mov ecx, esi
push edx
call fcn.004d62c0
mov eax, dword [ebx + 0xa74]
xor ecx, ecx
mov cx, word [eax + 0x17e]
push 0x10
push ecx
mov ecx, esi
call fcn.004d6300
mov edx, dword [ebx + 0xf4]
push edx
mov ecx, esi
call fcn.004d68e0
mov eax, dword [ebx + 0xa74]
xor ecx, ecx
mov cl, byte [eax + 0x89]
push 8
push ecx
mov ecx, esi
call fcn.004d62c0
mov edx, dword [ebx + 0xa74]
mov al, byte [edx + 0x89]
xor edi, edi
test al, al
jbe 0x575c61
mov ecx, dword [ebx + 0xa74]
push 8
push edi
call fcn.005a4e90
mov ecx, esi
push eax
call fcn.004d62c0
mov ecx, dword [ebx + 0xa74]
push 8
push 0
push edi
call fcn.005a5090
mov ecx, esi
push eax
call fcn.004d62c0
mov eax, dword [ebx + 0xa74]
movzx ecx, byte [eax + 0x89]
inc edi
cmp edi, ecx
jl 0x575c21
mov ecx, dword [esp + 0x4c]
pop edi
pop esi
pop ebp
mov dword fs:[0], ecx
pop ebx
add esp, 0x48
ret 0x14