Function at 0xa53cf0
Capabilities:
Hash data with md5

Disassembly:
push 0xffffffffffffffff
push 0xad14c1
mov eax, dword fs:[0]
push eax
sub esp, 0x998
mov eax, dword [0xaf97a0]
xor eax, esp
mov dword [esp + 0x994], eax
push ebx
push ebp
push esi
push edi
mov eax, dword [0xaf97a0]
xor eax, esp
push eax
lea eax, [esp + 0x9ac]
mov dword fs:[0], eax
mov eax, dword [esp + 0x9bc]
mov ebp, dword [esp + 0x9c0]
xor ebx, ebx
mov dword [esp + 0x1c], eax
mov esi, ecx
mov dword [esp + 0x18], ebx
mov dword [esp + 0x8e4], 0xf
mov dword [esp + 0x8e0], ebx
mov byte [esp + 0x8d0], bl
mov eax, esi
mov dword [esp + 0x9b4], ebx
lea edi, [eax + 1]
lea ebx, [ebx]
mov cl, byte [eax]
inc eax
cmp cl, bl
jne 0xa53d70
sub eax, edi
push esi
lea ecx, [esp + 0x940]
mov byte [esp + 0x9a8], bl
mov dword [esp + 0x954], ebx
mov dword [esp + 0x950], ebx
mov dword [esp + 0x940], 0x67452301
mov dword [esp + 0x944], 0xefcdab89
mov dword [esp + 0x948], 0x98badcfe
mov dword [esp + 0x94c], 0x10325476
mov dword [esp + 0x998], ebx
mov dword [esp + 0x99c], ebx
mov dword [esp + 0x9a0], ebx
mov dword [esp + 0x9a4], ebx
call fcn.00a11ed0
lea edi, [esp + 0x8b0]
lea eax, [esp + 0x93c]
call fcn.00a12840
sub esp, 0x1c
mov ecx, esp
mov dword [esp + 0x34], esp
push 0xffffffffffffffff
mov byte [esp + 0x9d4], 1
push ebx
mov eax, edi
xor edx, edx
mov dword [ecx + 0x18], 7
mov dword [ecx + 0x14], ebx
push eax
mov word [ecx + 4], dx
call fcn.00a11910
lea edi, [esp + 0x40]
call fcn.00a132c0
add esp, 0x1c
push 0xffffffffffffffff
push ebx
push eax
lea ecx, [esp + 0x8d8]
mov byte [esp + 0x9c0], 2
call fcn.00a11650
cmp dword [esp + 0x3c], 0x10
jb 0xa53e5a
mov ecx, dword [esp + 0x28]
push ecx
call fcn.00a7ac28
add esp, 4
mov edi, 0xf
mov dword [esp + 0x890], edi
mov dword [esp + 0x88c], ebx
mov byte [esp + 0x87c], bl
mov edx, 0x44
mov byte [esp + 0x9b4], 3
mov eax, ebp
cmp dx, word [esp + 0x9c4]
jne 0xa53f5b
mov dword [esp + 0x874], edi
mov dword [esp + 0x870], ebx
mov byte [esp + 0x860], bl
lea edx, [eax + 1]
lea esp, [esp]
mov cl, byte [eax]
inc eax
cmp cl, bl
jne 0xa53eb0
sub eax, edx
push eax
push ebp
lea ecx, [esp + 0x864]
call fcn.00a111b0
lea eax, [esp + 0x85c]
push eax
lea ecx, [esp + 0x898]
push ecx
mov byte [esp + 0x9bc], 4
call fcn.00a539b0
add esp, 8
push 0xffffffffffffffff
push ebx
push eax
lea ecx, [esp + 0x884]
mov byte [esp + 0x9c0], 5
call fcn.00a11650
mov esi, 0x10
cmp dword [esp + 0x8ac], esi
jb 0xa53f1d
mov edx, dword [esp + 0x898]
push edx
call fcn.00a7ac28
add esp, 4
mov dword [esp + 0x8ac], edi
mov dword [esp + 0x8a8], ebx
mov byte [esp + 0x898], bl
cmp dword [esp + 0x874], esi
jb 0xa53f4b
mov eax, dword [esp + 0x860]
push eax
call fcn.00a7ac28
add esp, 4
mov ecx, dword [esp + 0x88c]
mov dword [esp + 0x20], ecx
jmp 0xa5410f
mov dword [esp + 0x8ac], edi
mov dword [esp + 0x8a8], ebx
mov byte [esp + 0x898], bl
lea esi, [eax + 1]
mov cl, byte [eax]
inc eax
cmp cl, bl
jne 0xa53f73
sub eax, esi
push eax
push ebp
lea ecx, [esp + 0x89c]
call fcn.00a111b0
push 0xffffffffffffffff
push ebx
lea edx, [esp + 0x8d4]
push edx
lea ecx, [esp + 0x8a0]
mov byte [esp + 0x9c0], 6
call fcn.00a110b0
lea ecx, [esp + 0x894]
lea esi, [esp + 0x93c]
call fcn.00a11e70
lea edi, [esp + 0x8e8]
mov eax, esi
call fcn.00a12840
sub esp, 0x1c
mov ecx, esp
mov dword [esp + 0x34], esp
push 0xffffffffffffffff
mov byte [esp + 0x9d4], 7
push ebx
mov edx, edi
xor eax, eax
mov dword [ecx + 0x18], 7
mov dword [ecx + 0x14], ebx
push edx
mov word [ecx + 4], ax
call fcn.00a11910
lea edi, [esp + 0x878]
call fcn.00a132c0
add esp, 0x1c
push 0xa
xor ecx, ecx
lea esi, [esp + 0x28]
mov edx, edi
mov byte [esp + 0x9b8], 8
call fcn.00a3d570
push 0xffffffffffffffff
push ebx
push eax
mov ecx, edi
mov byte [esp + 0x9c0], 9
call fcn.00a11650
mov byte [esp + 0x9b4], 8
cmp dword [esp + 0x3c], 0x10
jb 0xa5404b
mov eax, dword [esp + 0x28]
push eax
call fcn.00a7ac28
add esp, 4
mov eax, ebp
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
cmp cl, bl
jne 0xa54050
sub eax, edx
push eax
push ebp
lea ecx, [esp + 0x864]
call fcn.00a12bf0
push 0xffffffffffffffff
push ebx
lea ecx, [esp + 0x864]
push ecx
lea ecx, [esp + 0x884]
call fcn.00a11650
mov edx, dword [esp + 0x870]
mov esi, 0x10
mov dword [esp + 0x20], edx
cmp dword [esp + 0x874], esi
jb 0xa540a7
mov eax, dword [esp + 0x860]
push eax
call fcn.00a7ac28
add esp, 4
cmp dword [esp + 0x900], 8
mov dword [esp + 0x874], 0xf
mov dword [esp + 0x870], ebx
mov byte [esp + 0x860], bl
jb 0xa540da
mov ecx, dword [esp + 0x8ec]
push ecx
call fcn.00a7ac28
add esp, 4
xor edx, edx
mov dword [esp + 0x900], 7
mov dword [esp + 0x8fc], ebx
mov word [esp + 0x8ec], dx
cmp dword [esp + 0x8ac], esi
jb 0xa5410f
mov eax, dword [esp + 0x898]
push eax
call fcn.00a7ac28
add esp, 4
push 0x3fc
lea ecx, [esp + 0x448]
push ebx
push ecx
mov dword [esp + 0x44c], ebx
call fcn.00a827a0
push 0x3fc
lea edx, [esp + 0x54]
push ebx
push edx
mov dword [esp + 0x58], ebx
call fcn.00a827a0
add esp, 0x18
mov dword [esp + 0x858], 0xf
mov dword [esp + 0x854], ebx
mov byte [esp + 0x844], bl
xor esi, esi
mov byte [esp + 0x9b4], 0xa
mov ecx, dword [esp + 0x8e0]
lea ebp, [esi + 0x10]
lea ecx, [ecx]
xor edx, edx
mov eax, esi
div ecx
mov edi, edx
cmp edi, ecx
jbe 0xa54188
call fcn.00a7c884
mov ecx, dword [esp + 0x8e0]
mov eax, dword [esp + 0x8d0]
cmp dword [esp + 0x8e4], ebp
jae 0xa5419f
lea eax, [esp + 0x8d0]
movsx eax, byte [edi + eax]
mov dword [esp + esi*4 + 0x440], eax
mov dword [esp + esi*4 + 0x40], esi
inc esi
cmp esi, 0xff
jle 0xa54170
xor ecx, ecx
xor eax, eax
jmp 0xa541c0
mov edx, dword [esp + eax + 0x40]
mov esi, dword [esp + eax + 0x440]
add esi, edx
add ecx, esi
and ecx, 0x800000ff
jns 0xa541df
dec ecx
or ecx, 0xffffff00
inc ecx
mov esi, dword [esp + ecx*4 + 0x40]
mov dword [esp + eax + 0x40], esi
add eax, 4
cmp eax, 0x400
mov dword [esp + ecx*4 + 0x40], edx
jl 0xa541c0
xor edi, edi
xor eax, eax
xor ebp, ebp
cmp dword [esp + 0x20], ebx
jle 0xa54336
jmp 0xa54214
mov eax, dword [esp + 0x18]
inc ebp
and ebp, 0x800000ff
jns 0xa54225
dec ebp
or ebp, 0xffffff00
inc ebp
mov esi, dword [esp + ebp*4 + 0x40]
lea ecx, [esi + eax]
mov eax, ecx
and eax, 0x800000ff
jns 0xa5423c
dec eax
or eax, 0xffffff00
inc eax
mov edx, dword [esp + eax*4 + 0x40]
mov dword [esp + 0x18], eax
lea eax, [esp + eax*4 + 0x40]
mov dword [esp + ebp*4 + 0x40], edx
mov dword [eax], esi
cmp edi, dword [esp + 0x88c]
jbe 0xa5425c
call fcn.00a7c884
cmp dword [esp + 0x890], 0x10
mov eax, dword [esp + 0x87c]
jae 0xa54274
lea eax, [esp + 0x87c]
mov ecx, dword [esp + ebp*4 + 0x40]
add ecx, esi
and ecx, 0x800000ff
jns 0xa5428a
dec ecx
or ecx, 0xffffff00
inc ecx
mov cl, byte [esp + ecx*4 + 0x40]
xor cl, byte [eax + edi]
or edx, 0xffffffff
sub edx, dword [esp + 0x854]
mov byte [esp + 0x14], cl
cmp edx, 1
ja 0xa542a9
call fcn.00a76a46
mov esi, dword [esp + 0x854]
inc esi
cmp esi, 0xfffffffe
jbe 0xa542bb
call fcn.00a76a46
mov eax, dword [esp + 0x858]
cmp eax, esi
jae 0xa54423
mov eax, dword [esp + 0x854]
push eax
push esi
lea ecx, [esp + 0x848]
call fcn.00a11450
cmp esi, ebx
jbe 0xa5432b
cmp dword [esp + 0x858], 0x10
mov eax, dword [esp + 0x844]
jae 0xa542fb
lea eax, [esp + 0x844]
mov edx, dword [esp + 0x854]
mov cl, byte [esp + 0x14]
mov byte [edx + eax], cl
cmp dword [esp + 0x858], 0x10
mov eax, dword [esp + 0x844]
mov dword [esp + 0x854], esi
jae 0xa54328
lea eax, [esp + 0x844]
mov byte [esi + eax], bl
inc edi
cmp edi, dword [esp + 0x20]
jl 0xa54210
cmp word [esp + 0x9c4], 0x44
jne 0xa54a42
cmp dword [esp + 0x854], 0xa
jae 0xa5444c
mov esi, dword [esp + 0x1c]
push ebx
mov edi, 0xf
mov dword [esi + 0x18], edi
mov dword [esi + 0x14], ebx
push 0xae5e52
mov ecx, esi
mov byte [esi + 4], bl
call fcn.00a111b0
mov ebp, 0x10
cmp dword [esp + 0x858], ebp
jb 0xa54390
mov eax, dword [esp + 0x844]
push eax
call fcn.00a7ac28
add esp, 4
mov dword [esp + 0x858], edi
mov dword [esp + 0x854], ebx
mov byte [esp + 0x844], bl
cmp dword [esp + 0x890], ebp
jb 0xa543be
mov ecx, dword [esp + 0x87c]
push ecx
call fcn.00a7ac28
add esp, 4
cmp dword [esp + 0x8c8], 8
mov dword [esp + 0x890], edi
mov dword [esp + 0x88c], ebx
mov byte [esp + 0x87c], bl
jb 0xa543ed
mov edx, dword [esp + 0x8b4]
push edx
call fcn.00a7ac28
add esp, 4
xor eax, eax
mov dword [esp + 0x8c8], 7
mov dword [esp + 0x8c4], ebx
mov word [esp + 0x8b4], ax
cmp dword [esp + 0x8e4], ebp
jb 0xa54b88
mov ecx, dword [esp + 0x8d0]
push ecx
jmp 0xa54b80
cmp esi, ebx
jne 0xa542e1
cmp eax, 0x10
mov eax, dword [esp + 0x844]
mov dword [esp + 0x854], ebx
jae 0xa54445
lea eax, [esp + 0x844]
mov byte [eax], bl
jmp 0xa5432b
push 0xa
xor ecx, ecx
lea esi, [esp + 0x8ec]
lea edx, [esp + 0x844]
call fcn.00a3d570
mov dword [esp + 0x8ac], 0xf
mov dword [esp + 0x8a8], ebx
mov byte [esp + 0x898], bl
push 0xffffffffffffffff
mov ecx, 0xa
lea esi, [esp + 0x924]
lea edx, [esp + 0x844]
mov byte [esp + 0x9b8], 0xc
call fcn.00a3d570
mov byte [esp + 0x9b4], 0xd
mov esi, dword [esp + 0x8d0]
mov edi, 0x10
cmp dword [esp + 0x8e4], edi
jae 0xa544c2
lea esi, [esp + 0x8d0]
mov eax, esi
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
cmp cl, bl
jne 0xa544c7
sub eax, edx
push eax
push esi
lea ecx, [esp + 0x928]
call fcn.00a12bf0
mov eax, dword [esp + 0x924]
mov byte [esp + 0x9a4], bl
mov dword [esp + 0x950], ebx
mov dword [esp + 0x94c], ebx
mov dword [esp + 0x93c], 0x67452301
mov dword [esp + 0x940], 0xefcdab89
mov dword [esp + 0x944], 0x98badcfe
mov dword [esp + 0x948], 0x10325476
mov dword [esp + 0x994], ebx
mov dword [esp + 0x998], ebx
mov dword [esp + 0x99c], ebx
mov dword [esp + 0x9a0], ebx
cmp dword [esp + 0x938], edi
jae 0xa54552
lea eax, [esp + 0x924]
push eax
mov eax, dword [esp + 0x938]
lea ecx, [esp + 0x940]
call fcn.00a11ed0
lea edi, [esp + 0x85c]
lea eax, [esp + 0x93c]
call fcn.00a12840
sub esp, 0x1c
mov ecx, esp
mov dword [esp + 0x34], esp
push 0xffffffffffffffff
mov byte [esp + 0x9d4], 0xe
push ebx
mov eax, edi
xor edx, edx
mov dword [ecx + 0x18], 7
mov dword [ecx + 0x14], ebx
push eax
mov word [ecx + 4], dx
call fcn.00a11910
lea edi, [esp + 0x920]
call fcn.00a132c0
add esp, 0x1c
push 0xa
xor ecx, ecx
lea esi, [esp + 0x28]
mov edx, edi
mov byte [esp + 0x9b8], 0xf
call fcn.00a3d570
push 0xffffffffffffffff
push ebx
push eax
mov ecx, edi
mov byte [esp + 0x9c0], 0x10
call fcn.00a11650
mov ebp, 0x10
mov byte [esp + 0x9b4], 0xf
cmp dword [esp + 0x3c], ebp
jb 0xa545fe
mov ecx, dword [esp + 0x28]
push ecx
call fcn.00a7ac28
add esp, 4
mov esi, dword [esp + 0x908]
cmp dword [esp + 0x91c], ebp
jae 0xa54615
lea esi, [esp + 0x908]
mov eax, dword [esp + 0x8ec]
cmp dword [esp + 0x900], ebp
jae 0xa54630
lea eax, [esp + 0x8ec]
lea esp, [esp]
mov cl, byte [eax]
cmp cl, byte [esi]
jne 0xa54650
cmp cl, bl
je 0xa5464c
mov cl, byte [eax + 1]
cmp cl, byte [esi + 1]
jne 0xa54650
add eax, 2
add esi, 2
cmp cl, bl
jne 0xa54630
xor eax, eax
jmp 0xa54655
sbb eax, eax
sbb eax, 0xffffffff
cmp eax, ebx
jne 0xa54876
push 0xffffffffffffffff
mov ecx, 0xa
lea esi, [esp + 0x28]
lea edx, [esp + 0x844]
call fcn.00a3d570
mov byte [esp + 0x9b4], 0x11
cmp dword [eax + 0x18], ebp
jb 0xa54686
mov esi, dword [eax + 4]
jmp 0xa54689
lea esi, [eax + 4]
mov edi, dword [esp + 0x1c]
mov ebp, 0xf
mov eax, esi
mov dword [edi + 0x18], ebp
mov dword [edi + 0x14], ebx
mov byte [edi + 4], bl
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
cmp cl, bl
jne 0xa546a0
sub eax, edx
push eax
push esi
mov ecx, edi
call fcn.00a111b0
mov esi, 0x10
cmp dword [esp + 0x3c], esi
jb 0xa546ca
mov edx, dword [esp + 0x28]
push edx
call fcn.00a7ac28
add esp, 4
mov dword [esp + 0x3c], ebp
mov dword [esp + 0x38], ebx
mov byte [esp + 0x28], bl
cmp dword [esp + 0x91c], esi
jb 0xa546ef
mov eax, dword [esp + 0x908]
push eax
call fcn.00a7ac28
add esp, 4
cmp dword [esp + 0x874], 8
mov dword [esp + 0x91c], ebp
mov dword [esp + 0x918], ebx
mov byte [esp + 0x908], bl
jb 0xa5471e
mov ecx, dword [esp + 0x860]
push ecx
call fcn.00a7ac28
add esp, 4
xor edx, edx
mov dword [esp + 0x874], 7
mov dword [esp + 0x870], ebx
mov word [esp + 0x860], dx
cmp dword [esp + 0x938], esi
jb 0xa54753
mov eax, dword [esp + 0x924]
push eax
call fcn.00a7ac28
add esp, 4
mov dword [esp + 0x938], ebp
mov dword [esp + 0x934], ebx
mov byte [esp + 0x924], bl
cmp dword [esp + 0x8ac], esi
jb 0xa54781
mov ecx, dword [esp + 0x898]
push ecx
call fcn.00a7ac28
add esp, 4
mov dword [esp + 0x8ac], ebp
mov dword [esp + 0x8a8], ebx
mov byte [esp + 0x898], bl
cmp dword [esp + 0x900], esi
jb 0xa547af
mov edx, dword [esp + 0x8ec]
push edx
call fcn.00a7ac28
add esp, 4
mov dword [esp + 0x900], ebp
mov dword [esp + 0x8fc], ebx
mov byte [esp + 0x8ec], bl
cmp dword [esp + 0x858], esi
jb 0xa547dd
mov eax, dword [esp + 0x844]
push eax
call fcn.00a7ac28
add esp, 4
mov dword [esp + 0x858], ebp
mov dword [esp + 0x854], ebx
mov byte [esp + 0x844], bl
cmp dword [esp + 0x890], esi
jb 0xa5480b
mov ecx, dword [esp + 0x87c]
push ecx
call fcn.00a7ac28
add esp, 4
cmp dword [esp + 0x8c8], 8
mov dword [esp + 0x890], ebp
mov dword [esp + 0x88c], ebx
mov byte [esp + 0x87c], bl
jb 0xa5483a
mov edx, dword [esp + 0x8b4]
push edx
call fcn.00a7ac28
add esp, 4
xor eax, eax
mov dword [esp + 0x8c8], 7
mov dword [esp + 0x8c4], ebx
mov word [esp + 0x8b4], ax
cmp dword [esp + 0x8e4], esi
jb 0xa5486f
mov ecx, dword [esp + 0x8d0]
push ecx
call fcn.00a7ac28
add esp, 4
mov eax, edi
jmp 0xa54b8a
mov edi, dword [esp + 0x1c]
push ebx
mov esi, 0xf
mov dword [edi + 0x18], esi
mov dword [edi + 0x14], ebx
push 0xae5e52
mov ecx, edi
mov byte [edi + 4], bl
call fcn.00a111b0
cmp dword [esp + 0x91c], ebp
jb 0xa548ae
mov edx, dword [esp + 0x908]
push edx
call fcn.00a7ac28
add esp, 4
mov ebp, 8
mov dword [esp + 0x91c], esi
mov dword [esp + 0x918], ebx
mov byte [esp + 0x908], bl
cmp dword [esp + 0x874], ebp
jb 0xa548e1
mov eax, dword [esp + 0x860]
push eax
call fcn.00a7ac28
add esp, 4
xor ecx, ecx
cmp dword [esp + 0x938], 0x10
mov dword [esp + 0x874], 7
mov dword [esp + 0x870], ebx
mov word [esp + 0x860], cx
jb 0xa54917
mov edx, dword [esp + 0x924]
push edx
call fcn.00a7ac28
add esp, 4
cmp dword [esp + 0x8ac], 0x10
mov dword [esp + 0x938], esi
mov dword [esp + 0x934], ebx
mov byte [esp + 0x924], bl
jb 0xa54946
mov eax, dword [esp + 0x898]
push eax
call fcn.00a7ac28
add esp, 4
cmp dword [esp + 0x900], 0x10
mov dword [esp + 0x8ac], esi
mov dword [esp + 0x8a8], ebx
mov byte [esp + 0x898], bl
jb 0xa54975
mov ecx, dword [esp + 0x8ec]
push ecx
call fcn.00a7ac28
add esp, 4
cmp dword [esp + 0x858], 0x10
mov dword [esp + 0x900], esi
mov dword [esp + 0x8fc], ebx
mov byte [esp + 0x8ec], bl
jb 0xa549a4
mov edx, dword [esp + 0x844]
push edx
call fcn.00a7ac28
add esp, 4
cmp dword [esp + 0x890], 0x10
mov dword [esp + 0x858], esi
mov dword [esp + 0x854], ebx
mov byte [esp + 0x844], bl
jb 0xa549d3
mov eax, dword [esp + 0x87c]
push eax
call fcn.00a7ac28
add esp, 4
mov dword [esp + 0x890], esi
mov dword [esp + 0x88c], ebx
mov byte [esp + 0x87c], bl
cmp dword [esp + 0x8c8], ebp
jb 0xa54a01
mov ecx, dword [esp + 0x8b4]
push ecx
call fcn.00a7ac28
add esp, 4
xor edx, edx
cmp dword [esp + 0x8e4], 0x10
mov dword [esp + 0x8c8], 7
mov dword [esp + 0x8c4], ebx
mov word [esp + 0x8b4], dx
jb 0xa5486f
mov eax, dword [esp + 0x8d0]
push eax
call fcn.00a7ac28
add esp, 4
mov eax, edi
jmp 0xa54b8a
lea ecx, [esp + 0x840]
push ecx
lea edx, [esp + 0x860]
push edx
call fcn.00a53710
add esp, 8
mov byte [esp + 0x9b4], 0x12
cmp dword [esp + 0x874], 0x10
mov edi, dword [esp + 0x860]
jae 0xa54a7a
lea edi, [esp + 0x860]
call fcn.00a53c10
mov esi, dword [esp + 0x1c]
mov edi, eax
mov ebp, 0xf
mov ecx, edi
mov dword [esi + 0x18], ebp
mov dword [esi + 0x14], ebx
mov byte [esi + 4], bl
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
cmp al, bl
jne 0xa54a98
sub ecx, edx
push ecx
push edi
mov ecx, esi
call fcn.00a111b0
mov edi, 0x10
cmp dword [esp + 0x874], edi
jb 0xa54ac8
mov eax, dword [esp + 0x860]
push eax
call fcn.00a7ac28
add esp, 4
mov dword [esp + 0x874], ebp
mov dword [esp + 0x870], ebx
mov byte [esp + 0x860], bl
cmp dword [esp + 0x858], edi
jb 0xa54af6
mov ecx, dword [esp + 0x844]
push ecx
call fcn.00a7ac28
add esp, 4
mov dword [esp + 0x858], ebp
mov dword [esp + 0x854], ebx
mov byte [esp + 0x844], bl
cmp dword [esp + 0x890], edi
jb 0xa54b24
mov edx, dword [esp + 0x87c]
push edx
call fcn.00a7ac28
add esp, 4
cmp dword [esp + 0x8c8], 8
mov dword [esp + 0x890], ebp
mov dword [esp + 0x88c], ebx
mov byte [esp + 0x87c], bl
jb 0xa54b53
mov eax, dword [esp + 0x8b4]
push eax
call fcn.00a7ac28
add esp, 4
xor ecx, ecx
mov dword [esp + 0x8c8], 7
mov dword [esp + 0x8c4], ebx
mov word [esp + 0x8b4], cx
cmp dword [esp + 0x8e4], edi
jb 0xa54b88
mov edx, dword [esp + 0x8d0]
push edx
call fcn.00a7ac28
add esp, 4
mov eax, esi
mov ecx, dword [esp + 0x9ac]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebp
pop ebx
mov ecx, dword [esp + 0x994]
xor ecx, esp
call fcn.00a7a967
add esp, 0x9a4
ret