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

Disassembly:
sub esp, 0xe0
lea eax, [esp + 0xbc]
push ebx
push ebp
push esi
mov esi, dword [esp + 0xf0]
push edi
push 4
push eax
push esi
call fcn.006229f0
add esp, 0xc
cmp eax, 4
jne 0x639871
cmp dword [esp + 0xcc], 0x20534444
jne 0x639871
lea ecx, [esp + 0x24]
push 0x7c
push ecx
push esi
call fcn.006229f0
add esp, 0xc
cmp eax, 0x7c
jne 0x639871
mov eax, dword [esp + 0x28]
test eax, 0x1007
je 0x639871
shr eax, 2
and eax, 0x8000
mov ebx, eax
mov al, byte [esp + 0x8c]
test al, 8
mov dword [esp + 0xa0], ebx
je 0x638875
mov eax, dword [esp + 0x90]
test ah, 0xfe
je 0x638875
mov esi, 1
jmp 0x638877
xor esi, esi
mov eax, dword [esp + 0x70]
mov dword [esp + 0x10], esi
cmp eax, 4
jne 0x6389f5
test esi, esi
je 0x6388af
mov edx, dword [esp + 0x74]
push edx
call fcn.006316b0
mov ebp, eax
add esp, 4
neg ebp
sbb ebp, ebp
inc ebp
je 0x6388c9
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0xe0
ret
mov eax, dword [esp + 0x74]
push eax
call fcn.006315b0
mov ebp, eax
add esp, 4
neg ebp
sbb ebp, ebp
inc ebp
jne 0x6395af
mov ecx, dword [esp + 0x2c]
mov edx, dword [esp + 0x30]
or bl, 0x84
push ebx
push 0
push ecx
push edx
call fcn.00628bc0
mov edi, eax
add esp, 0x10
test edi, edi
je 0x639871
mov bl, byte [edi + 0x21]
and bl, 0x7f
mov byte [edi + 0x21], bl
mov eax, dword [0x745370]
mov ecx, dword [esp + 0x74]
add eax, edi
mov dword [eax + 0x18], ecx
mov ecx, dword [esp + 0x74]
cmp ecx, 0x31545844
jl 0x638924
cmp ecx, 0x35545844
jg 0x638924
mov dl, byte [eax + 0xa]
and dl, 0xf
or dl, 0x10
mov byte [eax + 0xa], dl
jmp 0x638928
and byte [eax + 0xa], 0xf
test esi, esi
je 0x638977
test dword [0x745844], 0x30000
je 0x638948
mov ecx, dword [esp + 0x28]
mov edx, dword [esp + 0x3c]
test ecx, 0x20000
jne 0x63894d
mov edx, 1
mov cl, byte [eax + 9]
push 0
and cl, 0xf1
push eax
or cl, 1
push 1
mov byte [eax + 9], cl
mov eax, dword [eax + 0x18]
mov ecx, dword [0x73d6c8]
push eax
push 0
push edx
mov edx, dword [edi + 0xc]
mov esi, dword [ecx]
push edx
push ecx
call dword [esi + 0x64]
jmp 0x6389ac
mov ecx, dword [esp + 0x28]
mov edx, dword [esp + 0x3c]
test ecx, 0x20000
jne 0x63898c
mov edx, 1
mov ecx, dword [0x73d6c8]
push 0
push eax
mov eax, dword [eax + 0x18]
mov esi, dword [ecx]
push 1
push eax
mov eax, dword [edi + 0xc]
push 0
push edx
mov edx, dword [edi + 0x10]
push edx
push eax
push ecx
call dword [esi + 0x5c]
test eax, eax
jl 0x639871
test ebp, ebp
jne 0x6395af
mov edx, dword [0x745370]
push edi
lea ebx, [edx + edi]
mov dword [esp + 0xcc], ebx
call fcn.00628b50
mov dword [esp + 0x1c], eax
mov eax, dword [esp + 0xa4]
add esp, 4
test eax, eax
je 0x6390c0
mov eax, dword [esp + 0x3c]
mov dword [esp + 0x1c], eax
jmp 0x6390c8
cmp eax, 0x40
jne 0x638c24
mov eax, dword [esp + 0x78]
test esi, esi
je 0x638b39
cmp eax, 0x18
jne 0x638a17
mov ebp, 0x14
push ebp
jmp 0x638a28
mov eax, dword [esp + 0x7c]
cmp eax, 0xff0000
jne 0x638a3f
mov ebp, 0x16
push ebp
call fcn.006316b0
add esp, 4
test eax, eax
je 0x639871
mov esi, 0x600
jmp 0x638a65
cmp eax, 0xf800
jne 0x639871
mov ebp, 0x17
push ebp
call fcn.006316b0
add esp, 4
test eax, eax
je 0x639871
mov esi, 0x200
mov ecx, dword [esp + 0x30]
mov edx, dword [esp + 0x2c]
or esi, ebx
mov dword [esp + 0x14], ecx
mov eax, esi
mov dword [esp + 0xc4], edx
or al, 4
lea ecx, [esp + 0xc4]
push eax
lea edx, [esp + 0x18]
push ecx
push edx
call fcn.00641f10
mov eax, dword [esp + 0x3c]
mov ecx, dword [esp + 0x20]
add esp, 0xc
cmp eax, ecx
jne 0x639871
mov ecx, dword [esp + 0x2c]
mov edx, dword [esp + 0xc4]
cmp ecx, edx
jne 0x639871
or esi, 0x84
push esi
push 0
push ecx
push eax
call fcn.00628bc0
mov edi, eax
add esp, 0x10
test edi, edi
je 0x639871
mov eax, dword [0x745370]
mov cl, byte [eax + edi + 9]
lea esi, [eax + edi]
and cl, 0xf1
or cl, 1
mov byte [esi + 9], cl
mov eax, dword [0x745844]
test eax, 0x30000
je 0x638b04
mov eax, dword [esp + 0x28]
mov ecx, dword [esp + 0x3c]
test eax, 0x20000
jne 0x638b09
mov ecx, 1
mov eax, dword [0x73d6c8]
push 0
push esi
push 1
mov edx, dword [eax]
push ebp
push 0
push ecx
mov ecx, dword [edi + 0xc]
push ecx
push eax
call dword [edx + 0x64]
test eax, eax
jl 0x639871
mov al, byte [edi + 0x21]
and al, 0x7f
mov byte [edi + 0x21], al
mov dword [esi + 0x18], ebp
jmp 0x6389bc
cmp eax, 0x18
jne 0x638b57
push 0x14
call fcn.006316b0
add esp, 4
test eax, eax
je 0x6395af
mov edi, 0x14
jmp 0x638bab
mov eax, dword [esp + 0x7c]
cmp eax, 0xff0000
jne 0x638b7b
push 0x16
call fcn.006315b0
add esp, 4
test eax, eax
je 0x6395af
mov edi, 0x16
jmp 0x638bab
cmp eax, 0xf800
jne 0x638b89
mov edi, 0x17
jmp 0x638bab
cmp eax, 0xe0
jne 0x639871
push 0x1b
call fcn.006315b0
add esp, 4
test eax, eax
je 0x6395af
mov edi, 0x1b
mov edx, dword [esp + 0x30]
mov eax, dword [esp + 0x2c]
mov esi, ebx
mov dword [esp + 0xa8], edx
or esi, 4
lea ecx, [esp + 0xb0]
push esi
lea edx, [esp + 0xac]
push ecx
push edx
mov dword [esp + 0xbc], eax
call fcn.00641f10
mov eax, dword [esp + 0x3c]
mov ecx, dword [esp + 0xb4]
mov edx, dword [esp + 0x38]
add esp, 0xc
cmp eax, ecx
jne 0x6395b7
cmp edx, dword [esp + 0xb0]
jne 0x6395b7
push esi
push edi
push edx
push eax
call fcn.00631210
mov edi, eax
add esp, 0x10
test edi, edi
jne 0x6389bc
pop edi
pop esi
pop ebp
pop ebx
add esp, 0xe0
ret
cmp eax, 0x41
jne 0x638eb9
mov eax, dword [esp + 0x7c]
test esi, esi
je 0x638d84
cmp eax, 0xff0000
jne 0x638c5d
mov ebp, 0x15
push ebp
call fcn.006316b0
add esp, 4
test eax, eax
je 0x639871
mov esi, 0x500
jmp 0x638ca7
cmp eax, 0x7c00
jne 0x638c81
mov ebp, 0x19
push ebp
call fcn.006316b0
add esp, 4
test eax, eax
je 0x639871
mov esi, 0x100
jmp 0x638ca7
cmp eax, 0xf00
jne 0x639871
mov ebp, 0x1a
push ebp
call fcn.006316b0
add esp, 4
test eax, eax
je 0x639871
mov esi, 0x300
mov eax, dword [esp + 0x30]
mov ecx, dword [esp + 0x2c]
or esi, ebx
mov dword [esp + 0xbc], eax
mov edx, esi
mov dword [esp + 0xac], ecx
or edx, 4
lea eax, [esp + 0xac]
push edx
lea ecx, [esp + 0xc0]
push eax
push ecx
call fcn.00641f10
mov eax, dword [esp + 0x3c]
mov ecx, dword [esp + 0xc8]
add esp, 0xc
cmp eax, ecx
jne 0x639871
mov ecx, dword [esp + 0x2c]
mov edx, dword [esp + 0xac]
cmp ecx, edx
jne 0x639871
or esi, 0x84
push esi
push 0
push ecx
push eax
call fcn.00628bc0
mov edi, eax
add esp, 0x10
test edi, edi
je 0x639871
mov edx, dword [0x745370]
mov al, byte [edx + edi + 9]
lea esi, [edx + edi]
and al, 0xf1
or al, 1
mov byte [esi + 9], al
mov eax, dword [0x745844]
test eax, 0x30000
je 0x638d4f
mov eax, dword [esp + 0x28]
mov ecx, dword [esp + 0x3c]
test eax, 0x20000
jne 0x638d54
mov ecx, 1
mov eax, dword [0x73d6c8]
push 0
push esi
push 1
mov edx, dword [eax]
push ebp
push 0
push ecx
mov ecx, dword [edi + 0xc]
push ecx
push eax
call dword [edx + 0x64]
test eax, eax
jl 0x639871
mov al, byte [edi + 0x21]
and al, 0x7f
mov byte [edi + 0x21], al
mov dword [esi + 0x18], ebp
jmp 0x6389bc
cmp eax, 0xff0000
jne 0x638da7
push 0x15
call fcn.006315b0
add esp, 4
test eax, eax
je 0x6395af
mov edi, 0x15
jmp 0x638e40
cmp eax, 0x7c00
jne 0x638db8
mov edi, 0x19
jmp 0x638e40
cmp eax, 0xf00
jne 0x638dd8
push 0x1a
call fcn.006315b0
add esp, 4
test eax, eax
je 0x6395af
mov edi, 0x1a
jmp 0x638e40
cmp eax, 0x3ff
jne 0x638df8
push 0x23
call fcn.006315b0
add esp, 4
test eax, eax
je 0x6395af
mov edi, 0x23
jmp 0x638e40
cmp dword [esp + 0x84], 0x3ff
jne 0x638e1e
push 0x1f
call fcn.006315b0
add esp, 4
test eax, eax
je 0x6395af
mov edi, 0x1f
jmp 0x638e40
cmp eax, 0xe0
jne 0x639871
push 0x1d
call fcn.006315b0
add esp, 4
test eax, eax
je 0x6395af
mov edi, 0x1d
mov edx, dword [esp + 0x30]
mov eax, dword [esp + 0x2c]
mov esi, ebx
mov dword [esp + 0xa4], edx
or esi, 4
lea ecx, [esp + 0xb4]
push esi
lea edx, [esp + 0xa8]
push ecx
push edx
mov dword [esp + 0xc0], eax
call fcn.00641f10
mov eax, dword [esp + 0x3c]
mov ecx, dword [esp + 0xb0]
mov edx, dword [esp + 0x38]
add esp, 0xc
cmp eax, ecx
jne 0x6395b7
cmp edx, dword [esp + 0xb4]
jne 0x6395b7
push esi
push edi
push edx
push eax
call fcn.00631210
mov edi, eax
add esp, 0x10
test edi, edi
jne 0x6389bc
pop edi
pop esi
pop ebp
pop ebx
add esp, 0xe0
ret
test esi, esi
jne 0x639871
mov eax, dword [esp + 0x78]
cmp eax, 0x10
jne 0x638f29
mov eax, dword [esp + 0x7c]
cmp eax, 0xffff
jne 0x638ef1
push 0x51
call fcn.006315b0
add esp, 4
test eax, eax
je 0x6395af
mov ebp, 0x51
jmp 0x638ff0
cmp eax, 0xff
jne 0x639871
cmp dword [esp + 0x88], 0xff00
jne 0x639871
push 0x33
call fcn.006315b0
add esp, 4
test eax, eax
je 0x6395af
mov ebp, 0x33
jmp 0x638ff0
cmp eax, 8
jne 0x639871
mov eax, dword [esp + 0x7c]
cmp eax, 0xff
jne 0x638f59
push 0x32
call fcn.006315b0
add esp, 4
test eax, eax
je 0x6395af
mov ebp, 0x32
jmp 0x638ff0
mov ecx, dword [esp + 0x88]
cmp ecx, 0xff
jne 0x638f81
push 0x1c
call fcn.006315b0
add esp, 4
test eax, eax
je 0x6395af
mov ebp, 0x1c
jmp 0x638ff0
cmp eax, 0xf
jne 0x638fab
cmp ecx, 0xf0
jne 0x639871
push 0x34
call fcn.006315b0
add esp, 4
test eax, eax
je 0x6395af
mov ebp, 0x34
jmp 0x638ff0
test eax, eax
jne 0x639871
mov eax, dword [esp + 0x80]
test eax, eax
jne 0x639871
mov eax, dword [esp + 0x84]
test eax, eax
jne 0x639871
test ecx, ecx
jne 0x639871
push 0x29
call fcn.006315b0
add esp, 4
test eax, eax
je 0x6395af
mov ebp, 0x29
mov eax, dword [esp + 0x30]
mov ecx, dword [esp + 0x2c]
mov esi, ebx
mov dword [esp + 0xb8], eax
or esi, 4
lea edx, [esp + 0xc0]
push esi
lea eax, [esp + 0xbc]
push edx
push eax
mov dword [esp + 0xcc], ecx
call fcn.00641f10
mov eax, dword [esp + 0x3c]
mov ecx, dword [esp + 0xc4]
mov edx, dword [esp + 0x38]
add esp, 0xc
cmp eax, ecx
jne 0x6395b7
cmp edx, dword [esp + 0xc0]
jne 0x6395b7
push esi
push ebp
push edx
push eax
call fcn.00631210
mov edi, eax
add esp, 0x10
test edi, edi
je 0x639871
cmp ebp, 0x29
jne 0x6389bc
push 1
push edi
call fcn.00628ad0
add esp, 8
test eax, eax
je 0x6389bc
mov ecx, dword [esp + 0xf4]
push 0x400
push eax
push ecx
call fcn.006229f0
add esp, 0xc
cmp eax, 0x400
push edi
je 0x6390b3
call fcn.006289e0
push edi
call fcn.00628a10
add esp, 8
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 0xe0
ret
call fcn.006289e0
add esp, 4
jmp 0x6389bc
mov dword [esp + 0x1c], 1
mov eax, dword [esp + 0x90]
mov ecx, dword [esp + 0x10]
test ecx, ecx
je 0x639188
test ah, 6
je 0x6390f8
mov dl, byte [ebx + 9]
and dl, 0xf
mov byte [ebx + 9], dl
mov eax, dword [esp + 0x90]
and ah, 0xf9
jmp 0x639181
test ah, 0xa
je 0x639115
mov cl, byte [ebx + 9]
and cl, 0xf
or cl, 0x10
mov byte [ebx + 9], cl
mov eax, dword [esp + 0x90]
and ah, 0xf5
jmp 0x639181
test ah, 0x12
je 0x639132
mov dl, byte [ebx + 9]
and dl, 0xf
or dl, 0x20
mov byte [ebx + 9], dl
mov eax, dword [esp + 0x90]
and ah, 0xed
jmp 0x639181
test ah, 0x22
je 0x63914d
mov al, byte [ebx + 9]
and al, 0xf
or al, 0x30
mov byte [ebx + 9], al
mov eax, dword [esp + 0x90]
and ah, 0xdd
jmp 0x639181
test ah, 0x42
je 0x63916a
mov cl, byte [ebx + 9]
and cl, 0xf
or cl, 0x40
mov byte [ebx + 9], cl
mov eax, dword [esp + 0x90]
and ah, 0xbd
jmp 0x639181
test ah, 0x82
je 0x639332
mov dl, byte [ebx + 9]
and dl, 0xf
or dl, 0x50
xor eax, eax
mov byte [ebx + 9], dl
mov dword [esp + 0x90], eax
mov ecx, dword [esp + 0x1c]
xor ebp, ebp
test ecx, ecx
mov dword [esp + 0x20], ebp
jle 0x639322
cmp ebp, dword [esp + 0x18]
jl 0x639242
mov eax, dword [edi + 0xc]
mov edx, dword [edi + 0x10]
mov ecx, ebp
mov esi, dword [0x745370]
and ecx, 0xff
sar eax, cl
sar edx, cl
test eax, eax
jne 0x6391c5
mov eax, 1
test edx, edx
jne 0x6391ce
mov edx, 1
test byte [esi + edi + 0xa], 0xf0
jne 0x6391f7
mov ecx, dword [edi + 0x14]
sar ecx, 3
imul ecx, edx
imul ecx, eax
mov eax, dword [esp + 0xf4]
push ecx
push eax
call fcn.00622d10
add esp, 8
jmp 0x63930a
mov ebp, dword [esi + edi + 0x18]
xor ecx, ecx
cmp ebp, 0x31545844
setne cl
shr eax, 2
add ecx, 3
shr edx, 2
test eax, eax
jne 0x639218
mov eax, 1
test edx, edx
jne 0x639221
mov edx, 1
imul edx, eax
mov eax, dword [esp + 0xf4]
mov ebp, dword [esp + 0x20]
shl edx, cl
mov ecx, edx
push ecx
push eax
call fcn.00622d10
add esp, 8
jmp 0x63930a
mov esi, dword [esp + 0x20]
push 1
push esi
push edi
call fcn.00628c60
add esp, 0xc
mov ebp, eax
mov eax, dword [ebx]
lea edx, [esp + 0xd0]
push edx
push esi
mov ecx, dword [eax]
push eax
call dword [ecx + 0x44]
cmp dword [esp + 0x70], 4
jne 0x6392d8
mov eax, dword [esp + 0x74]
cmp eax, 0x31545844
je 0x6392aa
cmp eax, 0x32545844
je 0x6392aa
cmp eax, 0x33545844
je 0x6392aa
cmp eax, 0x34545844
je 0x6392aa
cmp eax, 0x35545844
je 0x6392aa
mov esi, dword [ebx + 0x10]
mov eax, dword [esp + 0xf4]
imul esi, dword [esp + 0xec]
push esi
push ebp
push eax
jmp 0x6392ed
mov esi, dword [esp + 0xec]
cmp esi, 4
jae 0x6392c5
mov esi, dword [ebx + 0x10]
mov eax, dword [esp + 0xf4]
push esi
push ebp
push eax
jmp 0x6392ed
shr esi, 2
imul esi, dword [ebx + 0x10]
mov eax, dword [esp + 0xf4]
push esi
push ebp
push eax
jmp 0x6392ed
mov esi, dword [ebx + 0x10]
mov ecx, dword [esp + 0xf4]
imul esi, dword [esp + 0xec]
push esi
push ebp
push ecx
call fcn.006229f0
add esp, 0xc
cmp eax, esi
jne 0x639871
push edi
call fcn.006289c0
mov ebp, dword [esp + 0x24]
add esp, 4
mov eax, dword [esp + 0x1c]
inc ebp
cmp ebp, eax
mov dword [esp + 0x20], ebp
jl 0x63919a
mov eax, dword [esp + 0x90]
mov ecx, dword [esp + 0x10]
test ecx, ecx
je 0x639332
test eax, eax
jne 0x6390cf
mov eax, dword [esp + 0x70]
cmp eax, 4
jne 0x63957e
mov eax, dword [ebx + 0x18]
cmp eax, 0x31545844
jne 0x639503
push edi
call fcn.00628b50
add esp, 4
mov dword [esp + 0xa0], eax
test eax, eax
mov dword [esp + 0x20], 0
jle 0x6394bc
mov edx, dword [esp + 0x20]
push 2
push edx
push edi
mov ebp, 1
call fcn.00628c60
mov dword [esp + 0x28], eax
mov eax, dword [edi + 0xc]
add esp, 0xc
cmp eax, 4
jge 0x639398
mov dword [esp + 0x10], ebp
mov esi, eax
xor ebp, ebp
jmp 0x6393aa
cdq
and edx, 3
mov esi, 4
add eax, edx
sar eax, 2
mov dword [esp + 0x10], eax
mov eax, dword [edi + 0x10]
cmp eax, 4
jge 0x63943a
mov ebx, eax
mov dword [esp + 0x18], ebx
mov ebp, dword [esp + 0x1c]
mov ax, word [ebp]
cmp ax, word [ebp + 2]
ja 0x639402
xor edx, edx
test ebx, ebx
jle 0x639402
add ebp, 4
xor eax, eax
xor ecx, ecx
mov al, byte [ebp]
test esi, esi
jle 0x6393f8
mov ebx, eax
and ebx, 3
cmp bl, 3
je 0x6394ac
shr eax, 2
inc ecx
cmp ecx, esi
jl 0x6393de
mov ebx, dword [esp + 0x18]
inc edx
inc ebp
cmp edx, ebx
jl 0x6393d3
mov ebp, dword [esp + 0x1c]
mov eax, dword [esp + 0x10]
add ebp, 8
dec eax
mov dword [esp + 0x1c], ebp
mov dword [esp + 0x10], eax
jne 0x6393c0
push edi
call fcn.006289c0
mov eax, dword [esp + 0x24]
mov ecx, dword [esp + 0xa4]
add esp, 4
inc eax
cmp eax, ecx
mov dword [esp + 0x20], eax
jl 0x63936d
jmp 0x6394bc
cdq
and edx, 3
mov ebx, 4
add eax, edx
mov dword [esp + 0x18], ebx
sar eax, 2
imul eax, dword [esp + 0x10]
test ebp, ebp
mov dword [esp + 0x10], eax
je 0x6393bc
mov eax, dword [esp + 0x1c]
mov cx, word [eax]
cmp cx, word [eax + 2]
ja 0x639491
xor esi, esi
mov edx, dword [esp + 0x1c]
xor eax, eax
xor ecx, ecx
mov al, byte [edx + esi + 4]
mov edx, eax
and edx, 3
cmp dl, 3
je 0x6394ac
shr eax, 2
inc ecx
cmp ecx, 4
jl 0x639478
inc esi
cmp esi, 4
jl 0x63946c
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x10]
add eax, 8
dec ecx
mov dword [esp + 0x1c], eax
mov dword [esp + 0x10], ecx
jne 0x639461
jmp 0x639414
push edi
call fcn.006289c0
add esp, 4
mov eax, 1
jmp 0x6394be
xor eax, eax
mov ecx, dword [esp + 0xc8]
test al, al
mov byte [ecx + 8], al
jne 0x6394e5
mov dl, byte [edi + 0x23]
mov eax, edi
and dl, 0xf2
or dl, 2
mov byte [edi + 0x23], dl
pop edi
pop esi
pop ebp
pop ebx
add esp, 0xe0
ret
mov al, byte [edi + 0x23]
mov dword [edi + 0x14], 0x10
and al, 0xf1
or al, 1
mov byte [edi + 0x23], al
mov eax, edi
pop edi
pop esi
pop ebp
pop ebx
add esp, 0xe0
ret
cmp eax, 0x32545844
je 0x63955c
cmp eax, 0x33545844
je 0x63955c
cmp eax, 0x34545844
je 0x63955c
cmp eax, 0x35545844
je 0x63955c
mov cl, byte [eax*4 + 0x745380]
xor edx, edx
mov byte [ebx + 8], cl
mov dl, byte [eax*4 + 0x745381]
mov dword [edi + 0x14], edx
mov dl, byte [edi + 0x23]
and dl, 0xf0
mov byte [edi + 0x23], dl
mov ecx, dword [ebx + 0x18]
mov al, dl
mov dl, byte [ecx*4 + 0x745383]
or dl, al
mov eax, edi
mov byte [edi + 0x23], dl
pop edi
pop esi
pop ebp
pop ebx
add esp, 0xe0
ret
mov byte [ebx + 8], 1
mov al, byte [edi + 0x23]
and al, 0xf3
mov dword [edi + 0x14], 0x10
or al, 3
mov byte [edi + 0x23], al
mov eax, edi
pop edi
pop esi
pop ebp
pop ebx
add esp, 0xe0
ret
test al, 1
jne 0x63959e
mov eax, dword [esp + 0x88]
test eax, eax
jne 0x63959e
mov eax, edi
pop edi
pop esi
mov byte [ebx + 8], 0
pop ebp
pop ebx
add esp, 0xe0
ret
mov eax, edi
pop edi
pop esi
mov byte [ebx + 8], 1
pop ebp
pop ebx
add esp, 0xe0
ret
mov eax, dword [esp + 0x30]
mov edx, dword [esp + 0x2c]
mov ecx, dword [esp + 0x70]
mov ebp, dword [esp + 0x7c]
mov edi, dword [esp + 0x78]
xor ebx, ebx
cmp ecx, 4
mov dword [esp + 0x20], ebx
mov dword [esp + 0x1c], ebx
jne 0x63966d
mov esi, dword [esp + 0x34]
cmp esi, ebx
jne 0x6397e7
mov ecx, dword [esp + 0x74]
cmp ecx, 0x31545844
jb 0x639653
cmp ecx, 0x35545844
ja 0x639653
cmp ecx, 0x31545844
jne 0x639605
mov ecx, 3
jmp 0x639633
cmp ecx, 0x32545844
je 0x639625
cmp ecx, 0x33545844
je 0x639625
cmp ecx, 0x34545844
je 0x639625
cmp ecx, 0x35545844
jne 0x63962c
mov ecx, 4
jmp 0x639633
mov ecx, dword [esp + 0xc8]
shr eax, 2
jne 0x63963d
mov eax, 1
shr edx, 2
mov esi, edx
jne 0x639649
mov esi, 1
imul esi, eax
shl esi, cl
jmp 0x6397e7
xor ebx, ebx
mov bl, byte [ecx*4 + 0x745381]
mov esi, ebx
shr esi, 3
imul esi, eax
mov dword [esp + 0x14], esi
jmp 0x6397e4
test dword [esp + 0x28], 0x80000
je 0x63978c
mov esi, dword [esp + 0x34]
cmp edi, 8
jne 0x63968d
mov dword [esp + 0x14], eax
jmp 0x6397f0
cmp edi, 0x10
jne 0x63973c
lea ecx, [eax + eax]
mov dword [esp + 0x14], ecx
mov ecx, dword [0x73b0d8]
push 0x10018
push esi
call dword [ecx + 0x108]
mov edx, dword [esp + 0xfc]
mov edi, eax
push esi
push edi
push edx
mov dword [esp + 0x24], edi
call fcn.006229f0
add esp, 0x14
cmp eax, esi
jne 0x639862
mov ecx, dword [esp + 0x2c]
mov edx, dword [esp + 0x30]
push 0x20
push ecx
push edx
call fcn.006351a0
mov ebp, eax
add esp, 0xc
test ebp, ebp
je 0x639862
push ebp
call fcn.00635260
mov eax, dword [esp + 0x74]
add esp, 4
cmp eax, 4
jne 0x63998f
mov eax, dword [esp + 0x74]
cmp eax, 0x33545844
ja 0x639944
je 0x63990f
cmp eax, 0x24
je 0x6398a9
cmp eax, 0x31545844
je 0x63987e
cmp eax, 0x32545844
je 0x63990f
jmp 0x63a18f
cmp edi, 0x18
jne 0x63974d
lea edx, [eax + eax*2]
mov dword [esp + 0x14], edx
jmp 0x63969d
cmp edi, 0x20
jne 0x63975e
shl eax, 2
mov dword [esp + 0x14], eax
jmp 0x63969d
cmp edi, 0x40
jne 0x63976f
lea ecx, [eax*8]
jmp 0x639699
cmp ebp, 0xff0000
jne 0x639784
lea edx, [eax*4]
mov dword [esp + 0x14], edx
jmp 0x6397e7
add eax, eax
mov dword [esp + 0x14], eax
jmp 0x6397e7
mov ecx, dword [esp + 0x34]
cmp ecx, ebx
jne 0x6397de
cmp edi, 8
jne 0x63979d
mov ecx, eax
jmp 0x6397da
cmp edi, 0x10
je 0x6397d7
cmp edi, 0x18
jne 0x6397ac
lea ecx, [eax + eax*2]
jmp 0x6397da
cmp edi, 0x20
jne 0x6397ba
lea ecx, [eax*4]
jmp 0x6397da
cmp edi, 0x40
jne 0x6397c8
lea ecx, [eax*8]
jmp 0x6397da
cmp ebp, 0xff0000
lea ecx, [eax*4]
je 0x6397da
lea ecx, [eax + eax]
mov dword [esp + 0x34], ecx
mov esi, ecx
mov dword [esp + 0x14], ecx
imul esi, edx
cmp edi, 8
jne 0x63969d
test ebp, ebp
jne 0x63969d
mov eax, dword [esp + 0x80]
test eax, eax
jne 0x63969d
mov eax, dword [esp + 0x84]
test eax, eax
jne 0x63969d
mov eax, dword [esp + 0x88]
test eax, eax
jne 0x63969d
mov ecx, dword [0x73b0d8]
push 0x10018
push 0x400
call dword [ecx + 0x108]
mov edx, dword [esp + 0xfc]
mov edi, eax
push 0x400
push edi
push edx
mov dword [esp + 0x34], edi
call fcn.006229f0
add esp, 0x14
cmp eax, 0x400
je 0x63969d
mov eax, dword [0x73b0d8]
push edi
call dword [eax + 0x10c]
add esp, 4
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0xe0
ret
mov ecx, dword [ebp + 0x14]
mov edx, dword [esp + 0x2c]
mov eax, dword [esp + 0x30]
push edi
push ecx
push edx
push eax
call fcn.00637ba0
add esp, 0x10
neg eax
sbb eax, eax
xor al, al
add eax, 0x200
mov dword [esp + 0x1c], eax
jmp 0x63a18f
mov eax, dword [esp + 0x2c]
xor edi, edi
test eax, eax
jbe 0x63a18f
mov ecx, dword [esp + 0x10]
mov edx, dword [esp + 0x30]
lea ebx, [ecx + 3]
mov eax, dword [ebp + 0x10]
mov esi, dword [ebp + 0x14]
imul eax, edi
add eax, esi
xor esi, esi
test edx, edx
jbe 0x6398fb
mov ecx, ebx
mov dl, byte [ecx - 2]
add ecx, 8
mov byte [eax], dl
mov dl, byte [ecx - 8]
mov byte [eax + 1], dl
mov dl, byte [ecx - 6]
mov byte [eax + 2], dl
mov dl, byte [ecx - 4]
mov byte [eax + 3], dl
mov edx, dword [esp + 0x30]
add eax, 4
inc esi
cmp esi, edx
jb 0x6398d5
mov ecx, dword [esp + 0x14]
mov eax, dword [esp + 0x2c]
inc edi
add ebx, ecx
cmp edi, eax
jb 0x6398c2
jmp 0x63a18f
push 0x1a
call fcn.006315b0
neg eax
sbb eax, eax
mov ecx, dword [esp + 0x30]
mov edx, dword [esp + 0x34]
and eax, 0x200
add eax, 0x100
push edi
mov dword [esp + 0x24], eax
mov eax, dword [ebp + 0x14]
push eax
push ecx
push edx
call fcn.00637ef0
add esp, 0x14
jmp 0x63a18f
cmp eax, 0x34545844
je 0x63995a
cmp eax, 0x35545844
jne 0x63a18f
mov edi, dword [esp + 0x10]
push 0x1a
call fcn.006315b0
neg eax
sbb eax, eax
mov ecx, dword [esp + 0x30]
mov edx, dword [esp + 0x34]
and eax, 0x200
add eax, 0x100
push edi
mov dword [esp + 0x24], eax
mov eax, dword [ebp + 0x14]
push eax
push ecx
push edx
call fcn.00638240
add esp, 0x14
jmp 0x63a18f
cmp eax, 0x40
jne 0x639b79
cmp dword [esp + 0x78], 0x18
jne 0x639a00
mov eax, dword [esp + 0x2c]
xor edi, edi
test eax, eax
jbe 0x63a18f
mov ebx, dword [esp + 0x10]
mov edx, dword [esp + 0x30]
mov eax, dword [ebp + 0x10]
mov esi, dword [ebp + 0x14]
imul eax, edi
add eax, esi
xor esi, esi
test edx, edx
mov ecx, ebx
jbe 0x6399ec
mov dl, byte [ecx + 2]
add ecx, 3
mov byte [eax], dl
mov dl, byte [ecx - 2]
mov byte [eax + 1], dl
mov dl, byte [ecx - 3]
mov byte [eax + 2], dl
mov byte [eax + 3], 0xff
mov edx, dword [esp + 0x30]
add eax, 4
inc esi
cmp esi, edx
jb 0x6399c8
mov ecx, dword [esp + 0x14]
mov eax, dword [esp + 0x2c]
inc edi
add ebx, ecx
cmp edi, eax
jb 0x6399b5
jmp 0x63a18f
mov eax, dword [esp + 0x7c]
cmp eax, 0xff0000
jne 0x639a79
mov eax, dword [esp + 0x2c]
xor edx, edx
test eax, eax
jbe 0x63a18f
mov esi, dword [esp + 0x10]
mov ecx, dword [esp + 0x30]
mov dword [esp + 0x18], esi
mov eax, dword [ebp + 0x10]
mov edi, dword [ebp + 0x14]
imul eax, edx
add eax, edi
xor edi, edi
test ecx, ecx
jbe 0x639a5d
mov ecx, dword [esi]
mov byte [eax + 3], 0xff
mov ebx, ecx
mov byte [eax + 2], cl
shr ebx, 0x10
mov byte [eax], bl
mov ebx, ecx
shr ebx, 8
mov byte [eax + 1], bl
mov ecx, dword [esp + 0x30]
add esi, 4
add eax, 4
inc edi
cmp edi, ecx
jb 0x639a36
mov esi, dword [esp + 0x18]
mov edi, dword [esp + 0x14]
mov eax, dword [esp + 0x2c]
inc edx
add esi, edi
cmp edx, eax
mov dword [esp + 0x18], esi
jb 0x639a25
jmp 0x63a18f
cmp eax, 0xf800
jne 0x639aff
mov eax, dword [esp + 0x2c]
xor edx, edx
test eax, eax
mov dword [esp + 0x1c], 0x200
jbe 0x63a18f
mov esi, dword [esp + 0x10]
mov ecx, dword [esp + 0x30]
mov dword [esp + 0x18], esi
mov eax, dword [ebp + 0x10]
mov edi, dword [ebp + 0x14]
imul eax, edx
add eax, edi
xor edi, edi
test ecx, ecx
jbe 0x639ae3
mov cx, word [esi]
xor ebx, ebx
mov bl, ch
mov byte [eax + 3], 0xff
and bl, 0xf8
add esi, 2
mov byte [eax], bl
mov ebx, ecx
shr ebx, 3
and bl, 0xfc
shl cl, 3
mov byte [eax + 1], bl
mov byte [eax + 2], cl
mov ecx, dword [esp + 0x30]
add eax, 4
inc edi
cmp edi, ecx
jb 0x639ab3
mov esi, dword [esp + 0x18]
mov edi, dword [esp + 0x14]
mov eax, dword [esp + 0x2c]
inc edx
add esi, edi
cmp edx, eax
mov dword [esp + 0x18], esi
jb 0x639aa2
jmp 0x63a18f
cmp eax, 0xe0
jne 0x63a18f
mov eax, dword [esp + 0x2c]
xor edx, edx
test eax, eax
mov dword [esp + 0x1c], 0x200
jbe 0x63a18f
mov edi, dword [esp + 0x10]
mov ecx, dword [esp + 0x30]
mov eax, dword [ebp + 0x10]
mov esi, dword [ebp + 0x14]
imul eax, edx
add eax, esi
xor esi, esi
test ecx, ecx
jbe 0x639b65
mov cl, byte [esi + edi]
mov byte [eax + 3], 0xff
mov bl, cl
add eax, 4
and bl, 0xe0
mov byte [eax - 4], bl
mov bl, cl
and bl, 0xfc
shl bl, 3
shl cl, 6
mov byte [eax - 3], bl
mov byte [eax - 2], cl
mov ecx, dword [esp + 0x30]
inc esi
cmp esi, ecx
jb 0x639b39
mov esi, dword [esp + 0x14]
mov eax, dword [esp + 0x2c]
inc edx
add edi, esi
cmp edx, eax
jb 0x639b28
jmp 0x63a18f
cmp eax, 0x41
jne 0x639eae
mov eax, dword [esp + 0x7c]
cmp eax, 0xff0000
jne 0x639bfd
mov eax, dword [esp + 0x2c]
xor edx, edx
test eax, eax
jbe 0x63a18f
mov esi, dword [esp + 0x10]
mov ecx, dword [esp + 0x30]
mov dword [esp + 0x18], esi
mov eax, dword [ebp + 0x10]
mov edi, dword [ebp + 0x14]
imul eax, edx
add eax, edi
xor edi, edi
test ecx, ecx
jbe 0x639be1
mov ecx, dword [esi]
add esi, 4
mov ebx, ecx
mov byte [eax + 2], cl
shr ebx, 0x10
mov byte [eax], bl
mov ebx, ecx
shr ebx, 8
shr ecx, 0x18
mov byte [eax + 1], bl
mov byte [eax + 3], cl
mov ecx, dword [esp + 0x30]
add eax, 4
inc edi
cmp edi, ecx
jb 0x639bb8
mov esi, dword [esp + 0x18]
mov edi, dword [esp + 0x14]
mov eax, dword [esp + 0x2c]
inc edx
add esi, edi
cmp edx, eax
mov dword [esp + 0x18], esi
jb 0x639ba7
jmp 0x63a18f
cmp eax, 0x7c00
jne 0x639c92
mov eax, dword [esp + 0x2c]
xor edx, edx
test eax, eax
mov dword [esp + 0x1c], 0x100
jbe 0x63a18f
mov edi, dword [esp + 0x10]
mov ecx, dword [esp + 0x30]
mov dword [esp + 0x18], edi
mov eax, dword [ebp + 0x10]
mov esi, dword [ebp + 0x14]
imul eax, edx
add eax, esi
xor esi, esi
test ecx, ecx
jbe 0x639c76
mov cx, word [edi]
test ch, ch
jns 0x639c48
mov byte [eax + 3], 0xff
jmp 0x639c4c
mov byte [eax + 3], 0
mov ebx, ecx
add edi, 2
shr ebx, 7
and bl, 0xf8
mov byte [eax], bl
mov ebx, ecx
shr ebx, 2
and bl, 0xf8
shl cl, 3
mov byte [eax + 1], bl
mov byte [eax + 2], cl
mov ecx, dword [esp + 0x30]
add eax, 4
inc esi
cmp esi, ecx
jb 0x639c3b
mov edi, dword [esp + 0x18]
mov esi, dword [esp + 0x14]
mov eax, dword [esp + 0x2c]
inc edx
add edi, esi
cmp edx, eax
mov dword [esp + 0x18], edi
jb 0x639c2a
jmp 0x63a18f
cmp eax, 0xf00
jne 0x639d14
mov eax, dword [esp + 0x2c]
xor edx, edx
test eax, eax
jbe 0x63a18f
mov esi, dword [esp + 0x10]
mov ecx, dword [esp + 0x30]
mov dword [esp + 0x18], esi
mov eax, dword [ebp + 0x10]
mov edi, dword [ebp + 0x14]
imul eax, edx
add eax, edi
xor edi, edi
test ecx, ecx
jbe 0x639cf8
mov cx, word [esi]
xor ebx, ebx
mov bl, ch
add esi, 2
and bl, 0xf0
mov byte [eax + 3], bl
mov ebx, ecx
shr ebx, 4
and bl, 0xf0
mov byte [eax], bl
mov bl, cl
and bl, 0xf0
shl cl, 4
mov byte [eax + 1], bl
mov byte [eax + 2], cl
mov ecx, dword [esp + 0x30]
add eax, 4
inc edi
cmp edi, ecx
jb 0x639cc4
mov esi, dword [esp + 0x18]
mov edi, dword [esp + 0x14]
mov eax, dword [esp + 0x2c]
inc edx
add esi, edi
cmp edx, eax
mov dword [esp + 0x18], esi
jb 0x639cb3
jmp 0x63a18f
cmp eax, 0x3ff
jne 0x639d95
mov eax, dword [esp + 0x2c]
xor edx, edx
test eax, eax
jbe 0x63a18f
mov esi, dword [esp + 0x10]
mov eax, dword [esp + 0x30]
mov dword [esp + 0x18], esi
mov ecx, dword [ebp + 0x10]
mov edi, dword [ebp + 0x14]
imul ecx, edx
add ecx, edi
xor edi, edi
test eax, eax
jbe 0x639d79
mov eax, dword [esi]
add esi, 4
mov ebx, eax
add ecx, 4
shr ebx, 0x16
mov byte [ecx - 4], bl
mov ebx, eax
shr ebx, 0xc
mov byte [ecx - 3], bl
mov ebx, eax
shr ebx, 2
mov byte [ecx - 2], bl
mov bl, 0x55
shr eax, 0x1e
imul bl
mov byte [ecx - 1], al
mov eax, dword [esp + 0x30]
inc edi
cmp edi, eax
jb 0x639d46
mov esi, dword [esp + 0x18]
mov edi, dword [esp + 0x14]
mov ecx, dword [esp + 0x2c]
inc edx
add esi, edi
cmp edx, ecx
mov dword [esp + 0x18], esi
jb 0x639d35
jmp 0x63a18f
cmp eax, 0xe0
jne 0x639e23
mov eax, dword [esp + 0x2c]
xor edx, edx
test eax, eax
mov dword [esp + 0x1c], 0x300
jbe 0x63a18f
mov esi, dword [esp + 0x10]
mov ecx, dword [esp + 0x30]
mov dword [esp + 0x18], esi
mov eax, dword [ebp + 0x10]
mov edi, dword [ebp + 0x14]
imul eax, edx
add eax, edi
xor edi, edi
test ecx, ecx
jbe 0x639e07
mov cx, word [esi]
add esi, 2
mov bl, cl
add eax, 4
and bl, 0xe0
mov byte [eax - 4], bl
mov bl, cl
and bl, 0xfc
shl bl, 3
mov byte [eax - 3], bl
mov bl, cl
shl bl, 6
mov byte [eax - 2], bl
xor ebx, ebx
mov bl, ch
inc edi
mov byte [eax - 1], bl
mov ecx, dword [esp + 0x30]
cmp edi, ecx
jb 0x639dd3
mov esi, dword [esp + 0x18]
mov edi, dword [esp + 0x14]
mov eax, dword [esp + 0x2c]
inc edx
add esi, edi
cmp edx, eax
mov dword [esp + 0x18], esi
jb 0x639dc2
jmp 0x63a18f
cmp dword [esp + 0x84], 0x3ff
jne 0x63a18f
mov eax, dword [esp + 0x2c]
xor edx, edx
test eax, eax
jbe 0x63a18f
mov esi, dword [esp + 0x10]
mov eax, dword [esp + 0x30]
mov dword [esp + 0x18], esi
mov ecx, dword [ebp + 0x10]
mov edi, dword [ebp + 0x14]
imul ecx, edx
add ecx, edi
xor edi, edi
test eax, eax
jbe 0x639e92
mov eax, dword [esi]
add esi, 4
mov ebx, eax
add ecx, 4
shr ebx, 2
mov byte [ecx - 4], bl
mov ebx, eax
shr ebx, 0xc
mov byte [ecx - 3], bl
mov ebx, eax
shr ebx, 0x16
mov byte [ecx - 2], bl
mov bl, 0x55
shr eax, 0x1e
imul bl
mov byte [ecx - 1], al
mov eax, dword [esp + 0x30]
inc edi
cmp edi, eax
jb 0x639e5f
mov esi, dword [esp + 0x18]
mov edi, dword [esp + 0x14]
mov ecx, dword [esp + 0x2c]
inc edx
add esi, edi
cmp edx, ecx
mov dword [esp + 0x18], esi
jb 0x639e4e
jmp 0x63a18f
mov eax, dword [esp + 0x78]
cmp eax, 0x10
jne 0x639fb8
mov eax, dword [esp + 0x7c]
cmp eax, 0xffff
jne 0x639f3c
push 0x32
call fcn.006315b0
add esp, 4
test eax, eax
je 0x639edc
mov dword [esp + 0x1c], 0x400
mov eax, dword [esp + 0x2c]
xor edi, edi
test eax, eax
jbe 0x63a18f
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x30]
lea ebx, [eax + 1]
mov eax, dword [ebp + 0x10]
mov edx, dword [ebp + 0x14]
imul eax, edi
add eax, edx
xor edx, edx
test ecx, ecx
jbe 0x639f28
mov esi, ebx
xor ecx, ecx
add eax, 4
mov cl, byte [esi]
mov byte [eax - 1], 0xff
mov byte [eax - 4], cl
mov byte [eax - 3], cl
mov byte [eax - 2], cl
mov ecx, dword [esp + 0x30]
add esi, 2
inc edx
cmp edx, ecx
jb 0x639f08
mov edx, dword [esp + 0x14]
mov eax, dword [esp + 0x2c]
inc edi
add ebx, edx
cmp edi, eax
jb 0x639ef5
jmp 0x63a18f
cmp eax, 0xff
jne 0x63a18f
cmp dword [esp + 0x88], 0xff00
jne 0x63a18f
mov eax, dword [esp + 0x2c]
xor edi, edi
test eax, eax
jbe 0x63a18f
mov ebx, dword [esp + 0x10]
mov eax, dword [esp + 0x30]
mov ecx, dword [ebp + 0x10]
mov esi, dword [ebp + 0x14]
imul ecx, edi
add ecx, esi
xor esi, esi
test eax, eax
mov edx, ebx
jbe 0x639fa4
xor eax, eax
add ecx, 4
mov ax, word [edx]
add edx, 2
mov byte [ecx - 4], al
mov byte [ecx - 3], al
mov byte [ecx - 2], al
shr eax, 8
mov byte [ecx - 1], al
mov eax, dword [esp + 0x30]
inc esi
cmp esi, eax
jb 0x639f81
mov edx, dword [esp + 0x14]
mov ecx, dword [esp + 0x2c]
inc edi
add ebx, edx
cmp edi, ecx
jb 0x639f6e
jmp 0x63a18f
cmp eax, 8
jne 0x63a18f
mov eax, dword [esp + 0x7c]
cmp eax, 0xff
jne 0x63a025
mov eax, dword [esp + 0x2c]
xor edi, edi
test eax, eax
jbe 0x63a18f
mov esi, dword [esp + 0x10]
mov ecx, dword [esp + 0x30]
mov ebx, dword [esp + 0x14]
mov eax, dword [ebp + 0x10]
mov edx, dword [ebp + 0x14]
imul eax, edi
add eax, edx
xor edx, edx
test ecx, ecx
jbe 0x63a015
xor ecx, ecx
add eax, 4
mov cl, byte [esi + edx]
mov byte [eax - 1], 0xff
mov byte [eax - 4], cl
mov byte [eax - 3], cl
mov byte [eax - 2], cl
mov ecx, dword [esp + 0x30]
inc edx
cmp edx, ecx
jb 0x639ff7
mov eax, dword [esp + 0x2c]
inc edi
add esi, ebx
cmp edi, eax
jb 0x639fe6
jmp 0x63a18f
mov ecx, dword [esp + 0x88]
cmp ecx, 0xff
jne 0x63a08f
mov eax, dword [esp + 0x2c]
xor edi, edi
test eax, eax
jbe 0x63a18f
mov esi, dword [esp + 0x10]
mov ecx, dword [esp + 0x30]
mov ebx, dword [esp + 0x14]
mov eax, dword [ebp + 0x10]
mov edx, dword [ebp + 0x14]
imul eax, edi
add eax, edx
xor edx, edx
test ecx, ecx
jbe 0x63a07f
xor ecx, ecx
add eax, 4
mov cl, byte [esi + edx]
mov byte [eax - 4], 0xff
mov byte [eax - 3], 0xff
mov byte [eax - 2], 0xff
mov byte [eax - 1], cl
mov ecx, dword [esp + 0x30]
inc edx
cmp edx, ecx
jb 0x63a05f
mov eax, dword [esp + 0x2c]
inc edi
add esi, ebx
cmp edi, eax
jb 0x63a04e
jmp 0x63a18f
cmp eax, 0xf
jne 0x63a0ff
cmp ecx, 0xf0
jne 0x63a18f
mov eax, dword [esp + 0x2c]
xor ebx, ebx
test eax, eax
jbe 0x63a18f
mov edi, dword [esp + 0x10]
mov eax, dword [esp + 0x30]
mov ecx, dword [ebp + 0x10]
mov esi, dword [ebp + 0x14]
imul ecx, ebx
add ecx, esi
xor esi, esi
test eax, eax
jbe 0x63a0eb
xor eax, eax
add ecx, 4
mov al, byte [esi + edi]
mov dl, al
and al, 0xf0
shl dl, 4
mov byte [ecx - 4], dl
mov byte [ecx - 3], dl
mov byte [ecx - 2], dl
mov byte [ecx - 1], al
mov eax, dword [esp + 0x30]
inc esi
cmp esi, eax
jb 0x63a0c7
mov edx, dword [esp + 0x14]
mov ecx, dword [esp + 0x2c]
inc ebx
add edi, edx
cmp ebx, ecx
jb 0x63a0b6
jmp 0x63a18f
test eax, eax
jne 0x63a18f
mov eax, dword [esp + 0x80]
test eax, eax
jne 0x63a18f
mov eax, dword [esp + 0x84]
test eax, eax
jne 0x63a18f
test ecx, ecx
jne 0x63a18f
mov eax, dword [esp + 0x2c]
xor edx, edx
test eax, eax
jbe 0x63a18f
mov edi, dword [esp + 0x10]
mov ecx, dword [esp + 0x30]
mov eax, dword [ebp + 0x10]
mov esi, dword [ebp + 0x14]
imul eax, edx
add eax, esi
xor esi, esi
test ecx, ecx
jbe 0x63a180
mov ebx, dword [esp + 0x20]
xor ecx, ecx
mov cl, byte [esi + edi]
add eax, 4
inc esi
mov bl, byte [ebx + ecx*4]
mov byte [eax - 4], bl
mov ebx, dword [esp + 0x20]
mov bl, byte [ebx + ecx*4 + 1]
mov byte [eax - 3], bl
mov ebx, dword [esp + 0x20]
mov bl, byte [ebx + ecx*4 + 2]
mov byte [eax - 2], bl
mov ebx, dword [esp + 0x20]
mov cl, byte [ebx + ecx*4 + 3]
mov byte [eax - 1], cl
mov ecx, dword [esp + 0x30]
cmp esi, ecx
jb 0x63a144
mov esi, dword [esp + 0x14]
mov eax, dword [esp + 0x2c]
inc edx
add edi, esi
cmp edx, eax
jb 0x63a133
mov edx, dword [esp + 0x10]
mov eax, dword [0x73b0d8]
push edx
call dword [eax + 0x10c]
mov eax, dword [esp + 0x24]
add esp, 4
test eax, eax
je 0x63a1ba
mov ecx, dword [0x73b0d8]
push eax
call dword [ecx + 0x10c]
add esp, 4
mov eax, dword [esp + 0x1c]
test eax, eax
jne 0x63a1d3
push ebp
call fcn.006430a0
push eax
push 4
call fcn.0062f320
add esp, 0xc
mov ecx, dword [esp + 0xa0]
test ecx, ecx
je 0x63a1e1
or ch, 0x10
mov edx, dword [esp + 0x2c]
or eax, ecx
or al, 4
push eax
mov eax, dword [esp + 0x34]
push 0
push edx
push eax
call fcn.00628bc0
mov edi, eax
add esp, 0x10
test edi, edi
jne 0x63a216
push ebp
call fcn.00635200
add esp, 4
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 0xe0
ret
mov eax, dword [edi + 0xc]
mov ecx, dword [ebp + 4]
cmp ecx, eax
jne 0x63a22a
mov ecx, dword [ebp + 8]
mov edx, dword [edi + 0x10]
cmp ecx, edx
je 0x63a242
mov edx, dword [edi + 0x10]
push edx
push eax
push ebp
call fcn.0063d930
push ebp
mov esi, eax
call fcn.00635200
add esp, 0x10
mov ebp, esi
push ebp
push edi
call fcn.00636620
push ebp
call fcn.00635200
add esp, 0xc
mov eax, edi
pop edi
pop esi
pop ebp
pop ebx
add esp, 0xe0
ret