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

Disassembly:
push esi
push edi
push ebx
push ebp
sub esp, 0x98
mov ebp, dword [esp + 0xac]
test ebp, ebp
mov esi, dword [esp + 0xc8]
je 0x4719a1
cmp dword [esp + 0xb0], 0
je 0x4719a1
cmp dword [esp + 0xb4], 0
je 0x4719a1
cmp dword [esp + 0xb8], 0
je 0x4719a1
cmp dword [esp + 0xc0], 0
je 0x4719a1
cmp dword [esp + 0xc4], 0
je 0x4719a1
cmp dword [esp + 0xcc], 0
je 0x4719a1
cmp dword [esp + 0xd0], 0
je 0x4719a1
mov ecx, dword [ebp]
test ecx, ecx
je 0x4719a1
mov eax, dword [esp + 0xc0]
mov edx, dword [eax]
test edx, edx
je 0x4719a1
mov eax, dword [esp + 0xb8]
mov ebx, dword [eax]
cmp ebx, 0x20
ja 0x471516
mov eax, dword [esp + 0xd0]
mov edi, dword [eax + 4]
mov dword [esp + 0x94], edi
cmp edi, dword [esp + 0xbc]
jb 0x471516
mov eax, dword [esp + 0xd0]
mov edi, dword [eax + 8]
cmp edi, 2
mov dword [esp + 0x18], edi
je 0x4714b9
mov eax, dword [esp + 0xd0]
mov edi, dword [eax]
mov eax, dword [esp + 0xb4]
mov dword [esp + 0x80], edi
mov edi, dword [eax]
mov eax, dword [esp + 0xb0]
mov dword [esp + 0x70], edi
mov edi, dword [eax]
mov eax, dword [esp + 0xc4]
mov dword [esp + 0x7c], edi
mov edi, dword [eax]
mov eax, dword [esp + 0xcc]
mov dword [esp + 0x78], edi
cmp dword [eax], 2
je 0x47196c
xor eax, eax
mov edi, 1
mov dword [esp + 0x84], eax
mov dword [esp + 0x88], eax
mov dword [esp + 0x74], eax
cmp dword [esp + 0x18], 0
jne 0x470e33
cmp edi, 1
je 0x471816
cmp edi, 6
je 0x47093e
cmp edi, 2
je 0x471803
cmp edi, 3
je 0x4717f0
cmp edi, 4
je 0x4717dd
cmp edi, 5
je 0x470951
mov dword [esp + 0x8c], ecx
mov ebp, dword [esp + 0x88]
jmp 0x470bef
mov dword [esp + 0x8c], ecx
mov ebp, dword [esp + 0x88]
mov eax, dword [esp + 0x84]
mov dword [esp + 0x6c], eax
cmp eax, dword [esp + 0x78]
jle 0x470992
mov eax, dword [esp + 0x78]
mov edi, 5
sub dword [esp + 0x84], eax
mov ebp, dword [esp + 0x74]
test eax, eax
mov dword [esp + 0x6c], eax
je 0x471528
jmp 0x470997
mov edi, 1
cmp esi, dword [esp + 0x74]
jae 0x470b9a
cmp dword [esp + 0x80], 0
je 0x47172d
mov eax, esi
sub eax, dword [esp + 0x74]
add eax, dword [esp + 0x6c]
mov dword [esp + 0x64], edi
test eax, eax
jle 0x471576
mov eax, esi
sub eax, dword [esp + 0x74]
mov ecx, dword [esp + 0x6c]
mov dword [esp + 0x64], edi
lea edi, [ecx + eax]
neg eax
sub ecx, edi
mov dword [esp + 0x54], edi
mov dword [esp + 0x58], ecx
mov dword [esp + 0x5c], eax
mov edi, dword [esp + 0x64]
cmp eax, dword [esp + 0xbc]
jle 0x470b00
sub eax, dword [esp + 0xbc]
mov dword [esp + 0x5c], eax
cmp eax, dword [esp + 0x58]
jl 0x470a52
mov eax, dword [esp + 0x94]
mov ecx, dword [esp + 0x80]
add eax, ecx
sub eax, dword [esp + 0x5c]
cmp dword [esp + 0x58], 0
jle 0x470b49
mov dword [esp + 0x3c], 0
mov dword [esp + 0x60], ebx
mov dword [esp + 0x68], esi
mov ebx, dword [esp + 0x58]
mov esi, dword [esp + 0x3c]
mov ecx, eax
movzx eax, byte [esi + ecx]
mov byte [esi + edx], al
inc esi
cmp esi, ebx
jl 0x470a41
jmp 0x470b41
mov dword [esp + 0x64], edi
mov edi, ecx
sub edi, eax
mov dword [esp + 0x48], edi
mov edi, dword [esp + 0x94]
mov ecx, dword [esp + 0x80]
add edi, ecx
sub edi, eax
mov dword [esp + 0x4c], edi
test eax, eax
mov edi, dword [esp + 0x64]
jle 0x470aaa
mov dword [esp + 0x38], 0
mov dword [esp + 0x60], ebx
mov dword [esp + 0x68], esi
mov ebx, eax
mov esi, dword [esp + 0x38]
mov ecx, dword [esp + 0x4c]
movzx eax, byte [esi + ecx]
mov byte [esi + edx], al
inc esi
cmp esi, ebx
jl 0x470a96
mov ebx, dword [esp + 0x60]
mov esi, dword [esp + 0x68]
add dword [esp + 0x5c], edx
cmp dword [esp + 0x48], 0
jle 0x470b49
mov dword [esp + 0x40], 0
mov dword [esp + 0x60], ebx
mov dword [esp + 0x90], edx
mov dword [esp + 0x68], esi
mov edx, dword [esp + 0x40]
mov ebx, dword [esp + 0x5c]
mov esi, dword [esp + 0x48]
mov ecx, dword [esp + 0x80]
movzx eax, byte [edx + ecx]
mov byte [edx + ebx], al
inc edx
cmp edx, esi
jl 0x470ae3
mov ebx, dword [esp + 0x60]
mov edx, dword [esp + 0x90]
mov esi, dword [esp + 0x68]
jmp 0x470b49
mov ecx, dword [esp + 0xbc]
mov eax, dword [esp + 0x80]
add eax, ecx
sub eax, dword [esp + 0x5c]
cmp dword [esp + 0x58], 0
jle 0x470b49
mov dword [esp + 0x34], 0
mov dword [esp + 0x60], ebx
mov dword [esp + 0x68], esi
mov ebx, dword [esp + 0x58]
mov esi, dword [esp + 0x34]
mov ecx, eax
movzx eax, byte [esi + ecx]
mov byte [esi + edx], al
inc esi
cmp esi, ebx
jl 0x470b35
mov ebx, dword [esp + 0x60]
mov esi, dword [esp + 0x68]
mov eax, edx
add dword [esp + 0x58], edx
sub eax, esi
cmp dword [esp + 0x54], 0
jle 0x470bd5
mov dword [esp + 0x50], 0
mov dword [esp + 0x60], ebx
mov dword [esp + 0x90], edx
mov dword [esp + 0x68], esi
mov edx, dword [esp + 0x50]
mov ebx, dword [esp + 0x58]
mov esi, eax
mov ecx, dword [esp + 0x54]
movzx eax, byte [edx + esi]
mov byte [edx + ebx], al
inc edx
cmp edx, ecx
jl 0x470b7d
mov ebx, dword [esp + 0x60]
mov edx, dword [esp + 0x90]
mov esi, dword [esp + 0x68]
jmp 0x470bd5
mov eax, edx
sub eax, dword [esp + 0x74]
cmp dword [esp + 0x6c], 0
jle 0x470bd5
mov dword [esp + 0x44], 0
mov dword [esp + 0x60], ebx
mov dword [esp + 0x68], esi
mov ebx, dword [esp + 0x44]
mov esi, eax
mov ecx, dword [esp + 0x6c]
movzx eax, byte [ebx + esi]
mov byte [ebx + edx], al
inc ebx
cmp ebx, ecx
jl 0x470bc1
mov ebx, dword [esp + 0x60]
mov esi, dword [esp + 0x68]
mov eax, dword [esp + 0x6c]
add esi, eax
sub dword [esp + 0x78], eax
add edx, eax
cmp edi, 5
je 0x4717c3
cmp edi, 1
je 0x470c09
cmp dword [esp + 0x78], 0
je 0x4717c3
mov eax, dword [esp + 0x84]
inc esi
dec dword [esp + 0x78]
mov byte [edx], al
inc edx
cmp ebx, 9
jg 0x470c45
mov eax, dword [esp + 0x70]
mov ecx, ebx
mov ebx, dword [esp + 0x7c]
mov edi, dword [esp + 0x8c]
test ebx, ebx
jle 0x470c34
movzx ebp, byte [edi]
inc edi
shl ebp, cl
add ecx, 8
or eax, ebp
dec ebx
cmp ecx, 9
jle 0x470c1f
mov dword [esp + 0x70], eax
mov dword [esp + 0x7c], ebx
mov ebx, ecx
mov dword [esp + 0x8c], edi
mov ebp, dword [esp + 0x70]
and ebp, 0x1ff
movzx eax, byte [ebp + 0x620a20]
movzx ebp, byte [ebp + str.g_b_b_b_b_t]
mov ecx, ebp
and ecx, 0xf
mov dword [esp + 0x84], eax
cmp ecx, ebx
jg 0x4717a1
shr dword [esp + 0x70], cl
sub ebx, ecx
test ebp, 0x80
jne 0x470c92
and ebp, 0x70
jne 0x471740
mov edi, 6
jmp 0x470bef
shr ebp, 4
add eax, 3
mov dword [esp + 0x84], eax
and ebp, 7
je 0x470d2b
mov edi, 2
cmp ebx, ebp
jg 0x470cfd
mov dword [esp + 0x68], esi
mov ecx, ebx
mov dword [esp + 0x90], edx
mov ebx, dword [esp + 0x70]
mov esi, dword [esp + 0x7c]
mov eax, dword [esp + 0x8c]
test esi, esi
jle 0x470ce1
movzx edx, byte [eax]
inc eax
shl edx, cl
add ecx, 8
or ebx, edx
dec esi
cmp ecx, ebp
jle 0x470ccd
mov dword [esp + 0x7c], esi
mov dword [esp + 0x70], ebx
mov ebx, ecx
mov dword [esp + 0x8c], eax
mov edx, dword [esp + 0x90]
mov esi, dword [esp + 0x68]
cmp ebp, ebx
jg 0x471528
movzx eax, word [ebp*2 + 0x620e60]
mov ecx, ebp
mov edi, dword [esp + 0x70]
and eax, edi
shr edi, cl
sub ebx, ebp
add dword [esp + 0x84], eax
mov dword [esp + 0x70], edi
mov edi, 3
jmp 0x470d30
mov edi, 3
cmp ebx, 5
jg 0x470d86
mov dword [esp + 0x68], esi
mov ecx, ebx
mov dword [esp + 0x90], edx
mov eax, dword [esp + 0x70]
mov esi, dword [esp + 0x7c]
mov ebx, dword [esp + 0x8c]
test esi, esi
jle 0x471777
movzx edx, byte [ebx]
inc ebx
shl edx, cl
add ecx, 8
or eax, edx
dec esi
cmp ecx, 5
jle 0x470d51
mov dword [esp + 0x7c], esi
mov dword [esp + 0x70], eax
mov dword [esp + 0x8c], ebx
mov ebx, ecx
mov edx, dword [esp + 0x90]
mov esi, dword [esp + 0x68]
mov edi, dword [esp + 0x70]
mov eax, edi
and eax, 0x1f
add ebx, 0xfffffffb
shr edi, 5
mov dword [esp + 0x70], edi
movzx ebp, word [eax*2 + 0x620e20]
mov dword [esp + 0x74], ebp
movzx ebp, byte [eax + 0x620ea0]
cmp ebp, 0xd
jg 0x47172d
mov edi, 4
cmp ebx, ebp
jg 0x470e0a
mov dword [esp + 0x68], esi
mov ecx, ebx
mov dword [esp + 0x90], edx
mov ebx, dword [esp + 0x70]
mov esi, dword [esp + 0x7c]
mov eax, dword [esp + 0x8c]
test esi, esi
jle 0x470dee
movzx edx, byte [eax]
inc eax
shl edx, cl
add ecx, 8
or ebx, edx
dec esi
cmp ecx, ebp
jle 0x470dda
mov dword [esp + 0x7c], esi
mov dword [esp + 0x70], ebx
mov ebx, ecx
mov dword [esp + 0x8c], eax
mov edx, dword [esp + 0x90]
mov esi, dword [esp + 0x68]
cmp ebp, ebx
jg 0x471528
movzx eax, word [ebp*2 + 0x620e60]
mov ecx, ebp
mov edi, dword [esp + 0x70]
and eax, edi
shr edi, cl
sub ebx, ebp
add dword [esp + 0x74], eax
mov dword [esp + 0x70], edi
jmp 0x47095f
cmp dword [esp + 0x18], 1
jne 0x471469
cmp edi, 1
je 0x471959
cmp edi, 6
je 0x470e6c
cmp edi, 2
je 0x47193f
cmp edi, 3
je 0x47192c
cmp edi, 4
je 0x471912
cmp edi, 5
je 0x470e86
mov dword [esp + 0x90], edx
mov dword [esp + 0x8c], ecx
mov ebp, dword [esp + 0x88]
jmp 0x471104
mov dword [esp + 0x90], edx
mov dword [esp + 0x8c], ecx
mov ebp, dword [esp + 0x88]
mov eax, dword [esp + 0x84]
mov dword [esp + 0x34], eax
cmp eax, dword [esp + 0x78]
jle 0x470ece
mov eax, dword [esp + 0x78]
mov edi, 5
sub dword [esp + 0x84], eax
mov ebp, dword [esp + 0x74]
test eax, eax
mov dword [esp + 0x34], eax
je 0x471822
jmp 0x470ed3
mov edi, 1
cmp esi, dword [esp + 0x74]
jae 0x4710a5
cmp dword [esp + 0x80], 0
je 0x4718bd
mov eax, esi
sub eax, dword [esp + 0x74]
add eax, dword [esp + 0x34]
test eax, eax
jle 0x471843
mov eax, esi
sub eax, dword [esp + 0x74]
mov ecx, dword [esp + 0x34]
lea edx, [ecx + eax]
neg eax
sub ecx, edx
mov dword [esp + 0x28], edx
mov dword [esp + 0x2c], ecx
cmp eax, dword [esp + 0xbc]
jle 0x471012
sub eax, dword [esp + 0xbc]
cmp eax, dword [esp + 0x2c]
jl 0x470f75
mov edx, dword [esp + 0x94]
mov ecx, dword [esp + 0x80]
add edx, ecx
sub edx, eax
cmp dword [esp + 0x2c], 0
jle 0x47105d
mov dword [esp + 0x60], ebx
xor eax, eax
mov dword [esp + 0x68], esi
mov ecx, dword [esp + 0x2c]
mov ebx, edx
mov esi, dword [esp + 0x90]
movzx edx, byte [eax + ebx]
mov byte [eax + esi], dl
inc eax
cmp eax, ecx
jl 0x470f64
jmp 0x47104e
mov edx, ecx
sub edx, eax
mov dword [esp + 0x20], edx
mov edx, dword [esp + 0x94]
mov ecx, dword [esp + 0x80]
add edx, ecx
sub edx, eax
test eax, eax
jle 0x470fcb
mov dword [esp + 0x1c], 0
mov dword [esp + 0x60], ebx
mov dword [esp + 0x68], esi
mov ecx, dword [esp + 0x1c]
mov ebx, edx
mov esi, dword [esp + 0x90]
movzx edx, byte [ecx + ebx]
mov byte [ecx + esi], dl
inc ecx
cmp ecx, eax
jl 0x470fb0
mov dword [esp + 0x90], esi
mov ebx, dword [esp + 0x60]
mov esi, dword [esp + 0x68]
add eax, dword [esp + 0x90]
cmp dword [esp + 0x20], 0
jle 0x47105d
mov dword [esp + 0x18], 0
mov dword [esp + 0x60], ebx
mov dword [esp + 0x68], esi
mov ecx, dword [esp + 0x18]
mov ebx, dword [esp + 0x20]
mov esi, dword [esp + 0x80]
movzx edx, byte [ecx + esi]
mov byte [ecx + eax], dl
inc ecx
cmp ecx, ebx
jl 0x470ffc
mov ebx, dword [esp + 0x60]
mov esi, dword [esp + 0x68]
jmp 0x47105d
mov ecx, dword [esp + 0xbc]
mov edx, dword [esp + 0x80]
add edx, ecx
sub edx, eax
cmp dword [esp + 0x2c], 0
jle 0x47105d
mov dword [esp + 0x60], ebx
xor eax, eax
mov dword [esp + 0x68], esi
mov ecx, dword [esp + 0x2c]
mov ebx, edx
mov esi, dword [esp + 0x90]
movzx edx, byte [eax + ebx]
mov byte [eax + esi], dl
inc eax
cmp eax, ecx
jl 0x471042
mov dword [esp + 0x90], esi
mov ebx, dword [esp + 0x60]
mov esi, dword [esp + 0x68]
mov edx, dword [esp + 0x90]
mov eax, edx
add dword [esp + 0x2c], edx
sub eax, esi
cmp dword [esp + 0x28], 0
jle 0x4710e5
mov dword [esp + 0x24], 0
mov dword [esp + 0x60], ebx
mov dword [esp + 0x68], esi
mov ecx, dword [esp + 0x24]
mov ebx, dword [esp + 0x2c]
mov esi, dword [esp + 0x28]
movzx edx, byte [ecx + eax]
mov byte [ecx + ebx], dl
inc ecx
cmp ecx, esi
jl 0x47108f
mov ebx, dword [esp + 0x60]
mov esi, dword [esp + 0x68]
jmp 0x4710e5
mov ecx, dword [esp + 0x90]
sub ecx, dword [esp + 0x74]
cmp dword [esp + 0x34], 0
jle 0x4710e5
mov dword [esp + 0x60], ebx
xor edx, edx
mov dword [esp + 0x68], esi
mov ebx, eax
mov esi, dword [esp + 0x90]
movzx eax, byte [edx + ecx]
mov byte [edx + esi], al
inc edx
cmp edx, ebx
jl 0x4710ca
mov dword [esp + 0x90], esi
mov ebx, dword [esp + 0x60]
mov esi, dword [esp + 0x68]
mov eax, dword [esp + 0x34]
add esi, eax
add dword [esp + 0x90], eax
sub dword [esp + 0x78], eax
cmp edi, 5
je 0x4718f1
cmp edi, 1
je 0x47112c
cmp dword [esp + 0x78], 0
je 0x4718f1
mov edx, dword [esp + 0x90]
inc esi
mov eax, dword [esp + 0x84]
dec dword [esp + 0x78]
mov byte [edx], al
inc edx
mov dword [esp + 0x90], edx
cmp ebx, 0xa
jg 0x471166
mov edx, dword [esp + 0x70]
mov ebp, dword [esp + 0x7c]
mov edi, dword [esp + 0x8c]
test ebp, ebp
jle 0x471157
mov ecx, ebx
add ebx, 8
movzx eax, byte [edi]
inc edi
shl eax, cl
dec ebp
or edx, eax
cmp ebx, 0xa
jle 0x471140
mov dword [esp + 0x70], edx
mov dword [esp + 0x7c], ebp
mov dword [esp + 0x8c], edi
mov edx, dword [esp + 0x70]
and edx, 0x3ff
mov ebp, dword [esp + 0xd0]
movzx eax, byte [edx + ebp + 0x28]
movzx ebp, byte [edx + ebp + 0x628]
mov ecx, ebp
and ecx, 0xf
mov dword [esp + 0x84], eax
cmp ecx, 0xa
jle 0x471223
cmp ebx, ecx
jg 0x4711d7
mov edi, dword [esp + 0x7c]
mov edx, ecx
mov eax, dword [esp + 0x8c]
mov ecx, ebx
mov ebx, dword [esp + 0x70]
test edi, edi
jle 0x4711c4
movzx ebp, byte [eax]
inc eax
shl ebp, cl
add ecx, 8
or ebx, ebp
dec edi
cmp ecx, edx
jle 0x4711b0
mov dword [esp + 0x70], ebx
mov ebx, ecx
mov dword [esp + 0x7c], edi
mov ecx, edx
mov dword [esp + 0x8c], eax
mov edi, dword [esp + 0x70]
shr edi, 0xa
movzx ebp, word [ecx*2 + 0x620e4c]
and edi, ebp
neg ecx
add ecx, 0xf
mov edx, dword [esp + 0x84]
movzx eax, byte [edi + 0x620e80]
shr eax, cl
mov ebp, dword [esp + 0xd0]
lea edx, [eax + edx*2]
movzx eax, byte [edx + ebp + 0x428]
movzx ebp, byte [edx + ebp + 0xa28]
mov ecx, ebp
mov dword [esp + 0x84], eax
and ecx, 0xf
cmp ecx, ebx
jg 0x4718d7
shr dword [esp + 0x70], cl
sub ebx, ecx
test ebp, 0x80
jne 0x47124c
and ebp, 0x70
jne 0x47187f
mov edi, 6
jmp 0x471104
shr ebp, 4
add eax, 3
mov dword [esp + 0x84], eax
and ebp, 7
je 0x4712d3
mov edi, 2
cmp ebx, ebp
jg 0x4712a5
mov dword [esp + 0x68], esi
mov ecx, ebx
mov ebx, dword [esp + 0x70]
mov esi, dword [esp + 0x7c]
mov eax, dword [esp + 0x8c]
test esi, esi
jle 0x471290
movzx edx, byte [eax]
inc eax
shl edx, cl
add ecx, 8
or ebx, edx
dec esi
cmp ecx, ebp
jle 0x47127c
mov dword [esp + 0x7c], esi
mov dword [esp + 0x70], ebx
mov ebx, ecx
mov dword [esp + 0x8c], eax
mov esi, dword [esp + 0x68]
cmp ebp, ebx
jg 0x471822
movzx eax, word [ebp*2 + 0x620e60]
mov ecx, ebp
mov edx, dword [esp + 0x70]
and eax, edx
shr edx, cl
sub ebx, ebp
add dword [esp + 0x84], eax
mov edi, 3
mov dword [esp + 0x70], edx
jmp 0x4712d8
mov edi, 3
cmp ebx, 0xa
jg 0x471314
mov eax, dword [esp + 0x70]
mov ecx, ebx
mov ebp, dword [esp + 0x7c]
mov ebx, dword [esp + 0x8c]
test ebp, ebp
jle 0x471303
movzx edx, byte [ebx]
inc ebx
shl edx, cl
add ecx, 8
or eax, edx
dec ebp
cmp ecx, 0xa
jle 0x4712ee
mov dword [esp + 0x70], eax
mov dword [esp + 0x7c], ebp
mov dword [esp + 0x8c], ebx
mov ebx, ecx
mov eax, dword [esp + 0x70]
and eax, 0x3ff
mov edx, dword [esp + 0xd0]
movzx ebp, word [edx + eax*2 + 0xc28]
mov dword [esp + 0x74], ebp
movzx ebp, byte [eax + edx + 0x1628]
mov eax, ebp
and eax, 0xf
mov dword [esp + 0x30], eax
cmp eax, 0xa
jle 0x4713db
cmp ebx, dword [esp + 0x30]
jg 0x471390
mov dword [esp + 0x68], esi
mov ecx, ebx
mov edx, eax
mov ebx, dword [esp + 0x70]
mov esi, dword [esp + 0x7c]
mov eax, dword [esp + 0x8c]
test esi, esi
jle 0x47137b
movzx ebp, byte [eax]
inc eax
shl ebp, cl
add ecx, 8
or ebx, ebp
dec esi
cmp ecx, edx
jle 0x471367
mov dword [esp + 0x7c], esi
mov dword [esp + 0x70], ebx
mov ebx, ecx
mov dword [esp + 0x8c], eax
mov esi, dword [esp + 0x68]
mov ecx, dword [esp + 0x30]
mov edx, dword [esp + 0x70]
shr edx, 0xa
movzx eax, word [ecx*2 + 0x620e4c]
and edx, eax
neg ecx
add ecx, 0xf
movzx ebp, byte [edx + 0x620e80]
shr ebp, cl
add ebp, dword [esp + 0x74]
mov edx, dword [esp + 0xd0]
movzx eax, word [edx + ebp*2 + 0x1428]
movzx ebp, byte [ebp + edx + 0x1a28]
mov dword [esp + 0x74], eax
mov eax, ebp
and eax, 0xf
mov dword [esp + 0x30], eax
cmp ebx, dword [esp + 0x30]
jl 0x471822
mov ecx, eax
sub ebx, ecx
shr ebp, 4
shr dword [esp + 0x70], cl
cmp ebp, 0xd
jg 0x4718bd
mov edi, 4
cmp ebx, ebp
jg 0x471440
mov dword [esp + 0x68], esi
mov ecx, ebx
mov ebx, dword [esp + 0x70]
mov esi, dword [esp + 0x7c]
mov eax, dword [esp + 0x8c]
test esi, esi
jle 0x47142b
movzx edx, byte [eax]
inc eax
shl edx, cl
add ecx, 8
or ebx, edx
dec esi
cmp ecx, ebp
jle 0x471417
mov dword [esp + 0x7c], esi
mov dword [esp + 0x70], ebx
mov ebx, ecx
mov dword [esp + 0x8c], eax
mov esi, dword [esp + 0x68]
cmp ebp, ebx
jg 0x471822
movzx eax, word [ebp*2 + 0x620e60]
mov ecx, ebp
mov edx, dword [esp + 0x70]
and eax, edx
shr edx, cl
sub ebx, ebp
add dword [esp + 0x74], eax
mov dword [esp + 0x70], edx
jmp 0x470e9b
mov eax, 0xffffff38
mov esi, dword [esp + 0xb0]
mov dword [ebp], ecx
mov ebp, dword [esp + 0x7c]
mov dword [esi], ebp
mov ebp, dword [esp + 0xb4]
mov edi, dword [esp + 0x70]
mov ecx, dword [esp + 0xc0]
mov dword [ebp], edi
mov ebp, dword [esp + 0xb8]
mov dword [ebp], ebx
mov ebx, dword [esp + 0xc4]
mov dword [ecx], edx
mov edx, dword [esp + 0x78]
mov dword [ebx], edx
add esp, 0x98
pop ebp
pop ebx
pop edi
pop esi
ret 0x28
mov ecx, dword [esp + 0xd0]
lea eax, [ecx + 0x10]
push eax
lea edx, [ecx + 0x28]
push edx
push dword [esp + 0x9c]
push dword [ecx]
push dword [esp + 0xdc]
push esi
push dword [esp + 0xdc]
push dword [esp + 0xdc]
push dword [esp + 0xdc]
push dword [esp + 0xdc]
push dword [esp + 0xdc]
push dword [esp + 0xdc]
push ebp
call fcn.00472d90
add esp, 0xcc
pop ebp
pop ebx
pop edi
pop esi
ret 0x28
mov eax, 0xfffffffa
add esp, 0x98
pop ebp
pop ebx
pop edi
pop esi
ret 0x28
mov dword [esp + 0x88], ebp
mov ecx, dword [esp + 0x8c]
mov ebp, dword [esp + 0xac]
mov esi, dword [esp + 0xd0]
mov eax, dword [esp + 0x84]
mov dword [esi + 0x10], edi
mov dword [esi + 0x14], eax
mov edi, dword [esp + 0x88]
mov eax, dword [esp + 0x74]
mov dword [esi + 0x18], edi
mov dword [esi + 0x1c], eax
xor eax, eax
mov esi, dword [esp + 0xcc]
mov dword [esi], 2
jmp 0x47146e
mov eax, dword [esp + 0x74]
sub eax, esi
mov dword [esp + 0x30], eax
cmp eax, dword [esp + 0xbc]
jle 0x4716cd
sub eax, dword [esp + 0xbc]
mov dword [esp + 0x30], eax
cmp eax, dword [esp + 0x6c]
jl 0x4715fe
mov eax, dword [esp + 0x94]
mov ecx, dword [esp + 0x80]
add eax, ecx
sub eax, dword [esp + 0x30]
cmp dword [esp + 0x6c], 0
jle 0x470bd5
mov dword [esp + 0x20], 0
mov dword [esp + 0x88], ebp
mov dword [esp + 0x60], ebx
mov dword [esp + 0x68], esi
mov ecx, dword [esp + 0x20]
mov ebx, eax
mov ebp, dword [esp + 0x6c]
movzx eax, byte [ecx + ebx]
mov byte [ecx + edx], al
inc ecx
cmp ecx, ebp
jl 0x4715de
mov ebp, dword [esp + 0x88]
mov ebx, dword [esp + 0x60]
mov esi, dword [esp + 0x68]
jmp 0x470bd5
mov dword [esp + 0x64], edi
mov edi, dword [esp + 0x6c]
sub edi, eax
mov dword [esp + 0x28], edi
mov edi, dword [esp + 0x94]
mov ecx, dword [esp + 0x80]
add edi, ecx
sub edi, eax
mov dword [esp + 0x2c], edi
test eax, eax
mov edi, dword [esp + 0x64]
jle 0x471666
mov dword [esp + 0x1c], 0
mov dword [esp + 0x88], ebp
mov dword [esp + 0x60], ebx
mov dword [esp + 0x68], esi
mov ecx, eax
mov ebx, dword [esp + 0x1c]
mov ebp, dword [esp + 0x2c]
movzx eax, byte [ebx + ebp]
mov byte [ebx + edx], al
inc ebx
cmp ebx, ecx
jl 0x47164b
mov ebp, dword [esp + 0x88]
mov ebx, dword [esp + 0x60]
mov esi, dword [esp + 0x68]
add dword [esp + 0x30], edx
cmp dword [esp + 0x28], 0
jle 0x470bd5
mov dword [esp + 0x24], 0
mov dword [esp + 0x88], ebp
mov dword [esp + 0x60], ebx
mov dword [esp + 0x90], edx
mov dword [esp + 0x68], esi
mov edx, dword [esp + 0x24]
mov ecx, dword [esp + 0x30]
mov ebx, dword [esp + 0x28]
mov ebp, dword [esp + 0x80]
movzx eax, byte [edx + ebp]
mov byte [edx + ecx], al
inc edx
cmp edx, ebx
jl 0x4716a6
mov ebp, dword [esp + 0x88]
mov ebx, dword [esp + 0x60]
mov edx, dword [esp + 0x90]
mov esi, dword [esp + 0x68]
jmp 0x470bd5
mov ecx, dword [esp + 0xbc]
mov eax, dword [esp + 0x80]
add eax, ecx
sub eax, dword [esp + 0x30]
cmp dword [esp + 0x6c], 0
jle 0x470bd5
mov dword [esp + 0x18], 0
mov dword [esp + 0x88], ebp
mov dword [esp + 0x60], ebx
mov dword [esp + 0x68], esi
mov ecx, dword [esp + 0x18]
mov ebx, eax
mov ebp, dword [esp + 0x6c]
movzx eax, byte [ecx + ebx]
mov byte [ecx + edx], al
inc ecx
cmp ecx, ebp
jl 0x47170d
mov ebp, dword [esp + 0x88]
mov ebx, dword [esp + 0x60]
mov esi, dword [esp + 0x68]
jmp 0x470bd5
mov ecx, dword [esp + 0x8c]
mov ebp, dword [esp + 0xac]
jmp 0x471469
mov dword [esp + 0x88], ebp
mov ecx, dword [esp + 0x8c]
mov ebp, dword [esp + 0xac]
cmp dword [esp + 0x88], 0x60
jne 0x471469
mov eax, dword [esp + 0xcc]
mov dword [eax], 0
xor eax, eax
jmp 0x47146e
mov dword [esp + 0x8c], ebx
mov ebx, ecx
mov dword [esp + 0x7c], esi
cmp ebx, 5
mov dword [esp + 0x70], eax
mov edx, dword [esp + 0x90]
mov esi, dword [esp + 0x68]
jl 0x471528
jmp 0x470d86
mov ecx, dword [esp + 0x8c]
mov ebp, dword [esp + 0xac]
mov eax, dword [esp + 0xcc]
mov dword [eax], 1
xor eax, eax
jmp 0x47146e
mov dword [esp + 0x88], ebp
mov ecx, dword [esp + 0x8c]
mov ebp, dword [esp + 0xac]
jmp 0x47153d
mov dword [esp + 0x8c], ecx
mov ebp, dword [esp + 0x88]
jmp 0x470dba
mov dword [esp + 0x8c], ecx
mov ebp, dword [esp + 0x88]
jmp 0x470d30
mov dword [esp + 0x8c], ecx
mov ebp, dword [esp + 0x88]
jmp 0x470cad
mov dword [esp + 0x8c], ecx
jmp 0x470c09
mov dword [esp + 0x88], ebp
mov edx, dword [esp + 0x90]
mov ecx, dword [esp + 0x8c]
mov ebp, dword [esp + 0xac]
jmp 0x47153d
mov eax, dword [esp + 0x90]
mov dword [esp + 0xc], eax
mov edx, dword [esp + 0x74]
sub edx, esi
mov dword [esp + 0x10], edx
mov eax, dword [esp + 0x34]
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x80]
mov ecx, dword [esp + 0x94]
mov edx, dword [esp + 0xbc]
call fcn.004719c0
jmp 0x4710e5
mov dword [esp + 0x88], ebp
mov edx, dword [esp + 0x90]
mov ecx, dword [esp + 0x8c]
mov ebp, dword [esp + 0xac]
cmp dword [esp + 0x88], 0x60
jne 0x471469
mov eax, dword [esp + 0xcc]
mov dword [eax], 0
xor eax, eax
jmp 0x47146e
mov edx, dword [esp + 0x90]
mov ecx, dword [esp + 0x8c]
mov ebp, dword [esp + 0xac]
jmp 0x471469
mov edx, dword [esp + 0x90]
mov ecx, dword [esp + 0x8c]
mov ebp, dword [esp + 0xac]
jmp 0x4717af
mov dword [esp + 0x88], ebp
mov edx, dword [esp + 0x90]
mov ecx, dword [esp + 0x8c]
mov ebp, dword [esp + 0xac]
jmp 0x47153d
mov dword [esp + 0x90], edx
mov dword [esp + 0x8c], ecx
mov ebp, dword [esp + 0x88]
jmp 0x4713fe
mov dword [esp + 0x90], edx
mov dword [esp + 0x8c], ecx
jmp 0x4712d8
mov dword [esp + 0x90], edx
mov dword [esp + 0x8c], ecx
mov ebp, dword [esp + 0x88]
jmp 0x471263
mov dword [esp + 0x90], edx
mov dword [esp + 0x8c], ecx
jmp 0x47112c
mov edi, dword [esp + 0xd0]
mov eax, dword [edi + 0x10]
mov dword [esp + 0x64], eax
mov eax, dword [edi + 0x14]
mov dword [esp + 0x84], eax
mov eax, dword [edi + 0x18]
mov edi, dword [edi + 0x1c]
and eax, 0xf
mov dword [esp + 0x74], edi
mov dword [esp + 0x88], eax
mov edi, dword [esp + 0x64]
jmp 0x470905
mov eax, 0xfffffff8
add esp, 0x98
pop ebp
pop ebx
pop edi
pop esi
ret 0x28